java - 如何通过登录注销用户(非当前)?

标签 java authentication spring-boot spring-security

我的系统中有 2 个角色:用户管理员

管理员可以按名称注销任何用户

我该怎么做? 我需要这样的东西:

service.logoutUser(anotherUserName)

配置如下:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers
                 ....
                .formLogin()
                .loginProcessingUrl("/api/login")
                .successHandler(authenticationSuccessHandler)
                .failureHandler(new SimpleUrlAuthenticationFailureHandler())
                .and()
            .rememberMe()
                .key("...")
                .rememberMeCookieName("...")
                .userDetailsService(userDetailsService)
                .and()
            .csrf()
                .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
                .and()
            .logout()
                .deleteCookies("JSESSIONID")
                .logoutUrl("/logout")
                .logoutSuccessHandler(new HttpStatusReturningLogoutSuccessHandler())
                .permitAll();

最佳答案

类似这样的事情:

import org.springframework.security.core.userdetails.User;
...
...
Set<SimpleGrantedAuthority> userRoles = new HashSet<>();
userRoles.add(new SimpleGrantedAuthority("ROLE_USER"));
User user = new User(anotherUserName, "", userRoles);
List<SessionInformation> sessions = sessionRegistry.getAllSessions(u, false);

for(SessionInformation info : infos) {
   info.expireNow();
}

关于java - 如何通过登录注销用户(非当前)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46098691/

相关文章:

java - BouncyCaSTLe 的 "last block incomplete in decryption"问题涉及 PHP 和 Base64

java - 胖客户端 session 管理和安全

tomcat - Vaadin 和 Tomcat7 问题登录

javascript - 如何从#authentication.getPrincipal()获取多个数据。用Java语言编写

java - 如何使用 spring boot security 配置多个 HttpSecurity 和 UserDetailsS​​ervice ?

java - 如何在Spring Security中忽略请求参数

java - 根据分数对学生进行分组

java - Spring - 多个配置文件处于 Activity 状态

java - 带有自定义实体的SpringBoot注入(inject)RedisTemplate

JAVA 按钮对齐