[英]Spring security with jwt get all user logged
我想顯示登錄我的應用程序的所有用戶我使用 spring 安全性和 jwt 身份驗證,
當我試圖讓所有用戶 spring 安全給我空數組
@Autowired
private SessionRegistry sessionRegistry;
@GetMapping("/userConnecter")
public List<String> userConnecter(){
List<Object> principals = sessionRegistry.getAllPrincipals();
List<String> usersNamesList = new ArrayList<String>();
for (Object principal: principals) {
if (principal instanceof User) {
usersNamesList.add(((User) principal).getUsername());
}
}
return usersNamesList;
}
@Bean
public SessionRegistry sessionRegistry() {
return new SessionRegistryImpl();
}
我認為這個問題與注入依賴有關。
有什么解決辦法嗎?
if (principal instanceof User) {
usersNamesList.add(((User) principal).getUsername());
}
你能驗證User
是 org.springframework.security.core.userdetails.User 嗎?
另外,嘗試添加
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public SessionRegistry sessionRegistry() {
return new SessionRegistryImpl();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.sessionManagement()
.maximumSessions(1)
.sessionRegistry(sessionRegistry());
}
}
我對 jwt 使用無狀態的問題
http.csrf().disable();
http.sessionManagement();
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
http.formLogin().permitAll();
http.authorizeRequests().antMatchers("/register/**").permitAll();
http.authorizeRequests().antMatchers("/Automobiles/**").permitAll();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.