[英]Spring Security define a custom anonymous filter
我们正在使用Spring Security版本4。默认情况下,匿名用户已分配ROLE_ANONYMOUS
。
我们想为匿名用户添加更多角色。
我试图扩展AnonymousAuthenticationFilter
并将其添加到Spring Security上下文中,如下所示:
<http entry-point-ref="authenticationEntryPoint">
<custom-filter ref="sabaAnonymousAuthenticationFilter" position="ANONYMOUS_FILTER"/>
<anonymous enabled="false"/>
.....
<beans:bean id="sabaAnonymousAuthenticationFilter"
class="foo.bar.CustomAnonymousAuthenticationFilter">
<beans:constructor-arg index="0" value="SomeUniqueKeyForThisApplication"/>
</beans:bean>
和班级:
public class CustomAnonymousAuthenticationFilter extends AnonymousAuthenticationFilter {
@Inject
HelperClass aHelperClass;
public CustomAnonymousAuthenticationFilter(String key) {
super(key);
getAuthorities().add(new SimpleGrantedAuthority("ROLE_FOO_BAR"));
......
}
}
上面的代码更改了匿名角色,并添加了ROLE_FOO_BAR
,但是我不能在此过滤器中@Inject
或@Autowire
其他Spring bean。
请告诉我:
authowire
其他豆进行authowire
? 我使用相同的方法来定义自定义UserDetailsService
,并且autowire
在那里工作。
据我了解, Spring Security文档可以像这样向用户添加其他角色:
<bean id="anonymousAuthFilter"
class="org.springframework.security.web.authentication.AnonymousAuthenticationFilter">
<property name="key" value="foobar"/>
<property name="userAttribute" value="anonymousUser,ROLE_ANONYMOUS, ROLE_FOOBAR"/>
</bean>
这样,您可能可以避免编写自己的身份验证筛选器。
试试看。 我希望它适合您的需求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.