2012-06-20 1 views
0

을 통해 접근하면 스프링 인증이 실패합니다. 현재 스프링 필터와 서블릿을 통해 스프링 보안 인증을 사용하고 있습니다. http://localhost:8080/context/admin?action=authenticate은 j_usernameURL이 자바 코드

: 사용자
j_password : 비밀번호

내가 얻을 내가 예를 들어 URL을 쳤을 때

<authentication-manager alias="authenticationManager"> 
    <authentication-provider ref="myAppAuthenticationProvider"/> 
</authentication-manager> 

<beans:bean id="myAppAuthenticationProvider" 
     class="com.filter.MyAppAuthenticationProvider"> 
    <beans:property name="repository" value="#{deployment['globalregistry.repository']}"/> 
</beans:bean> 

이제 내 스프링 security.xml 내부

<servlet-mapping> 
    <servlet-name>remoting</servlet-name> 
    <url-pattern>/remoting/*</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>remoting</servlet-name> 
    <url-pattern>/admin</url-pattern> 
</servlet-mapping> 

<!-- Enables Spring Security --> 
<filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class> 
     org.springframework.web.filter.DelegatingFilterProxy 
    </filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
<!-- End Spring Security --> 

봄 보안에 의해 인증 된 사용자 및 암호를 입력하기위한 화면.

이제 HTTPPost API를 통해 Java 프로그램을 통해 위 URL에 액세스하려고하면 302로 리디렉션 오류 응답이 표시됩니다. 이제 어떻게 유효성을 검사하고 웹 페이지로 리디렉션하지 않고 직접 인증 할 수있는 로그인 화면을 무시합니까? 또한 java 프로그램을 사용하여 j_username과 j_password를 제공하십시오.

URL을 누르면 페이지가 http://localhost:8080/context/spring_security_login과 같은 것으로 리디렉션됩니다.

귀하의 도움은 정말로 감사하겠습니다.

답변

1

인증에 사용되는 URL에 j_usernamej_password을 전달해야합니다. 예를 들어

:

http://localhost:8080/yourAppContext/j_spring_security_check?j_username=user&j_password=pass 
+1

또는 기본적으로 허용하는 유일한 방법이다 POST를 통해 보냅니다. – Xaerxess