我想配置Spring Security以对同一组URL启用BASIC和DIGEST身份验证,但不清楚这是否可行。我看到我需要启用多个AuthenticationEntryPoint
实例来设置适当的HTTP标头,但我没有看到任何内置类来容纳这个。 DelegatingAuthenticationEntryPoint
接近,但最终它只选择一个入口点。
我实现了一个自定义AuthenticationEntryPoint
,它在提供的AuthenticationEntryPoint
个实例列表上调用begin方法,但最终会抛出IllegalStateException
因为每个AuthenticationEntryPoint
调用sendError(我不允许聚会。)
如果没有实现完全自定义的入口点,有没有办法做到这一点?
答案 0 :(得分:0)
Id通过仅为摘要式身份验证配置Spring安全性,然后在过滤器链的开头手动添加BasicProcessingFilter来实现,如There所述
<bean id="basicProcessingFilter" class="org.springframework.security.ui.basicauth.BasicProcessingFilter">
<property name="authenticationManager"><ref bean="authenticationManager"/></property>
<security:custom-filter before="AUTHENTICATION_PROCESSING_FILTER"/>
<property name="authenticationEntryPoint"><ref bean="authenticationEntryPoint"/></property>