Tôi đã triển khai LowerCaseUsernamePasswordAuthenticationFilter
riêng của mình mà chỉ là một lớp con của UsernamePasswordAuthenticationFilter
.Định cấu hình bảo mật mùa xuân để sử dụng tên người dùng tùy chỉnhPasswordAuthenticationFilter
Nhưng bây giờ vấn đề của tôi là, cách cấu hình bảo mật mùa xuân để sử dụng bộ lọc này.
Cho đến nay tôi đã sử dụng:
<security:http auto-config="true" use-expressions="true">
<security:form-login login-processing-url="/resources/j_spring_security_check" login-page="/login" authentication-failure-url="/login?login_error=t" />
<security:logout logout-url="/resources/j_spring_security_logout" />
<security:intercept-url pattern="/**" access="isAuthenticated()" requires-channel="${cfma.security.channel}" />
</security:http>
Tôi thực sự để biến của auto-config
và cần phải cấu hình tất cả các bộ lọc bằng tay? - Nếu điều này là đúng, không ai có thể cung cấp một ví dụ xin vui lòng?
Cách để thêm đơn giản là một security:custom-filter
:
<security:http ...>
<security:form-login login-processing-url="/resources/j_spring_security_check" login-page="/login" authentication-failure-url="/login?login_error=t" />
<security:custom-filter ref="lowerCaseUsernamePasswordAuthenticationFilter" position="FORM_LOGIN_FILTER"/>
...
</security:http>
không gây ra một ngoại lệ với thông điệp rằng:
Cấu hình vấn đề: Lọc đậu
<lowerCaseUsernamePasswordAuthenticationFilter>
và 'gốc đậu: lớp [ org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter]; scope =; abstract = false; lazyInit = false; autowireMode = 0; dependencyCheck = 0; autowireCandidate = true; primary = false; factoryBeanName = null; factoryMethodName = null; initMethodName = null; destroyMethodName = null 'có cùng giá trị' order '. Khi sử dụng các bộ lọc tùy chỉnh, hãy đảm bảo các vị trí không xung đột với các bộ lọc mặc định. Hoặc bạn có thể tắt các bộ lọc mặc định bằng cách xóa các phần tử con tương ứng khỏi và tránh sử dụng.