[英]Anonymous user count using Spring Security
我已經設法使用Spring Security 3.0.5完成了幾個功能。 首先是我想要統計和列出具有特定角色的用戶。 為此,我建立了HttpSessionEventPublisher
以及隨之HttpSessionEventPublisher
的spring配置。 使用這些設置,無論他們的特權級別如何,我都可以輕松獲取已登錄用戶的列表-除非他們是匿名用戶( ROLE_ANONYMOUS
)。
我在安全XML中使用了匿名標記:
<security:anonymous />
我可以調試通過AnonymousAuthenticationFilter.doFilter
進入的匿名用戶,但從未為這些SessionRegistry.registerNewSession
調用SessionRegistry.registerNewSession
,這很可能是因為匿名用戶沒有主體。
所以我只是在尋找想法。 我希望能夠列出匿名會話以及其他注冊用戶的計數。
您可以擴展AnonymousAuthenticationFilter
並覆蓋createAuthentication
方法(用於覆蓋)。
然后,由於僅在新的匿名身份驗證上調用此方法,因此無論何時調用此方法,您都可以在某個地方增加計數器,或以任何方便的方式對它們進行計數。 您只需要計算對該方法的調用。
這是counting anonymous's in Spring Security
中counting anonymous's in Spring Security
的一種實現。
public class ProxyAuthenticationFilter extends AnonymousAuthenticationFilter {
private String key = "key";
public ProxyAuthenticationFilter() {
super(key);
}
public ProxyAuthenticationFilter(String key, Object principal, List<GrantedAuthority> authorities) {
super(key, principal, authorities);
}
@Override
protected Authentication createAuthentication(HttpServletRequest request) {
// do increment and store somewhere
return super.createAuthentication(request);
}
}
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.anonymous().authenticationFilter(proxyAuthenticationFilter());
}
@Bean
protected ProxyAuthenticationFilter proxyAuthenticationFilter() {
return new ProxyAuthenticationFilter();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.