簡體   English   中英

Spring 安全與 jwt 讓所有用戶登錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM