Tôi có bộ lọc xác thực tùy chỉnh tạo ra PreAuthenticatedAuthenticationToken
và lưu trữ nó trong bối cảnh bảo mật. Điều này tất cả hoạt động tốt. Dưới đây là cấu hình:Bảo mật mùa xuân và tùy chỉnh AuthenticationFilter với khởi động mùa xuân
@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private SsoAuthenticationProvider authenticationProvider;
@Autowired
private SsoAuthenticationFilter ssoAuthenticationFilter;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.addFilterAfter(ssoAuthenticationFilter, SecurityContextPersistenceFilter.class);
}
}
Bây giờ ssoAuthenticationFilter
tôi là một phần của FilterChainProxy
, vào vị trí đúng. Trơn tru.
Nhưng khi ssoAuthenticationFilter
là Filter
, nó được chọn bằng Khởi động và được bao gồm làm bộ lọc. Vì vậy, chuỗi bộ lọc của tôi thực sự trông giống như:
- ssoAuthenticationFilter (bao gồm vì là
Filter
) - filterChainProxy (mùa xuân tự động cấu hình)
- ...
- SecurityContextPersistenceFilter
- ssoAuthenticationFilter (bao gồm theo
http.addFilterAfter(...)
) - ...
- một số bộ lọc khác
Rõ ràng là tôi muốn thoát khỏi những ký tự động của ssoAuthenticationFilter
đây (người đầu tiên niêm yết).
Mọi mẹo được đánh giá cao.
Bạn là người đàn ông - như allways với S pring boot. –
Có kế hoạch nào để hội tụ cấu hình bộ lọc Spring Security với cách khởi động Spring để thực hiện nó không? Tôi rất muốn có thể thiết lập thứ tự các bộ lọc servlet của tôi, bao gồm việc có thể đặt một bộ lọc trước các bộ lọc bảo mật mà không cần phải gây rối với 'HttpSecurity' – Adam
Đừng nghĩ rằng tôi hiểu rằng dường như thêm bất kỳ điều gì vào câu trả lời). Dù sao, bạn không thể thực hiện các bộ lọc bảo mật như các bean được sắp xếp vì có thể có nhiều chuỗi bộ lọc trong một ngữ cảnh. –