내가 바람둥이로 봄 보안 릴리스 3.1.3로 스프링 MVC를 사용하고 404을 반환 7.0.37은/j_spring_security_check
나는 2 개 보안 필터 체인, BasicAuthentication 선택 하나를 구성해야 하나는 FormBasedAuthentication 용입니다.
<beans:beans ...>
...
<!-- ....................... -->
<!-- The Gui is secured here -->
<!-- ....................... -->
<http auto-config="true" use-expressions="true" pattern="/gui/**">
<intercept-url pattern="/gui/login**" access="isAnonymous()"/>
<form-login login-page="/gui/login" default-target-url="/gui/welcome"
authentication-failure-url="/gui/loginfailed" />
<logout logout-success-url="/gui/logout" />
<intercept-url pattern="/welcome*" access="hasRole('een_admin')" />
<intercept-url pattern="/mandantAdmin/**" access="isAuthenticated()"/>
<intercept-url pattern="/standortAdmin/**" access="isAuthenticated()"/>
<intercept-url pattern="/ereignisse/**" access="isAuthenticated()" />
<intercept-url pattern="/tickets/**" access="isAuthenticated()"/> <!-- requires-channel="https" -->
<intercept-url pattern="/**" access="hasRole('een_admin')"/>
</http>
<!-- ................................. -->
<!-- The Service Methods are secured here -->
<!-- ................................. -->
<http use-expressions="true" >
<http-basic />
<logout logout-url="/resources/j_spring_security_logout"/>
<intercept-url pattern="/service/ticketManagement/**" access="isAuthenticated()"/>
<intercept-url pattern="/service/standortKonfig/**" access="isAuthenticated()"/>
<intercept-url pattern="/service/ereignisStorage/**" access="isAuthenticated()"/>
</http>
<debug/>
<authentication-manager>
<authentication-provider>
<password-encoder hash="sha-256"/>
<user-service>
<user name="123" password="asdf" authorities="een_admin" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
내 web.xml 파일은 다음과 같다 : 여기
내 스프링 security.xml 파일입니다<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/mvc-dispatcher-servlet.xml,
/WEB-INF/spring-security.xml
</param-value>
</context-param>
<!-- ........................................................................... -->
<!-- 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>
형태 기반의 보호 자원 중 하나에 접근 구성된 사용자 정의 로그인 양식에 성공적으로 위임됩니다. 하지만 내 자격 증명을 입력 한 후 나는이 "j_spring_security_check"한다는 404 오류가 (이 URL을 사용하고 : "http://127.0.0.1:8080/webapp/j_spring_security_check"
) 찾을 수 없습니다 얻을 여기
은 일부 로그입니다
Request received for '/gui/login':
[email protected]
servletPath:/gui/login
pathInfo:null
Security filter chain: [
SecurityContextPersistenceFilter
LogoutFilter
UsernamePasswordAuthenticationFilter
BasicAuthenticationFilter
RequestCacheAwareFilter
SecurityContextHolderAwareRequestFilter
AnonymousAuthenticationFilter
SessionManagementFilter
ExceptionTranslationFilter
FilterSecurityInterceptor
]
Request received for '/j_spring_security_check':
[email protected]
servletPath:/j_spring_security_check
pathInfo:null
Security filter chain: [
SecurityContextPersistenceFilter
LogoutFilter
BasicAuthenticationFilter
RequestCacheAwareFilter
SecurityContextHolderAwareRequestFilter
AnonymousAuthenticationFilter
SessionManagementFilter
ExceptionTranslationFilter
FilterSecurityInterceptor
]
01:06:06,345 WARN http-apr-8080-exec-3 servlet.PageNotFound:1080 - No mapping found for HTTP request with URI [/webapp/j_spring_security_check] in DispatcherServlet with name 'mvc-dispatcher'
In access_logs:
"POST /webapp/j_spring_security_check HTTP/1.1" 404 949
참고 UsernamePasswordAuthenticationFilter 누락 때 방향 전환.
첫 번째 요소에서 패턴 속성 pattern = "/ gui/**"을 제거하고 두 번째 요소를 주석 처리하면 (그렇지 않으면 요격 패턴과 관련된 문제가 발생합니다) 다시 작동합니다.
간략히 : http 요소 j_spring_security_check에 패턴 속성을 추가 할 수 없습니다.
무엇이 잘못 되었나요? 아무도 도와 줄 수 있습니까?
정말 고마워, 너 정말 이걸 도와 줬어! – mulrich
login-processing-url에 "/ gui/j_spring_security_check"을 사용했습니다. login.jsp와 동일한 값으로 데이터를 보내면 이제 작동합니다. 이 로그인을 사용하는 방법을 알지 못했습니다.do "를 실행하면"j_spring_security_check "명령이 실행됩니다. – mulrich
'login-processing-url'은 필터가 응답하는 URL을 설정하고 로그인 양식의 URL과 일치하면 '/ j_spring_security_check'는 단지 기본값입니다. –