Spring Security 3.x:如何启用BASIC和DIGEST身份验证?

时间:2010-12-20 17:43:35

标签: spring-security

我想配置Spring Security以对同一组URL启用BASIC和DIGEST身份验证,但不清楚这是否可行。我看到我需要启用多个AuthenticationEntryPoint实例来设置适当的HTTP标头,但我没有看到任何内置类来容纳这个。 DelegatingAuthenticationEntryPoint接近,但最终它只选择一个入口点。

我实现了一个自定义AuthenticationEntryPoint,它在提供的AuthenticationEntryPoint个实例列表上调用begin方法,但最终会抛出IllegalStateException因为每个AuthenticationEntryPoint调用sendError(我不允许聚会。)

如果没有实现完全自定义的入口点,有没有办法做到这一点?

1 个答案:

答案 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>