Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在用户Spring中立即登录_Java_Authentication_Spring Security - Fatal编程技术网

Java 在用户Spring中立即登录

Java 在用户Spring中立即登录,java,authentication,spring-security,Java,Authentication,Spring Security,我尝试使用此代码在spring中立即登录用户 SecurityContextHolder.getContext().getAuthentication().getName(); 我有一个配置类 @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { private PasswordEncoderConfig passwordEncoderConfig

我尝试使用此代码在spring中立即登录用户

SecurityContextHolder.getContext().getAuthentication().getName();
我有一个配置类

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
private PasswordEncoderConfig passwordEncoderConfig;

@Autowired
public SecurityConfig(PasswordEncoderConfig passwordEncoderConfig) {
    this.passwordEncoderConfig = passwordEncoderConfig;
}

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
    String password = passwordEncoderConfig.passwordEncoder().encode("123");
    String password2 = passwordEncoderConfig.passwordEncoder().encode("456");
    auth.inMemoryAuthentication().withUser("ram").password(password).roles("USER");
    auth.inMemoryAuthentication().withUser("ram1").password(password2).roles("USER");
}

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
            .httpBasic().and()
            .authorizeRequests()
            .antMatchers("/drug/**").anonymous()
            .and().formLogin().permitAll()
                .defaultSuccessUrl("/account/show")
            .and().logout()
            .logoutUrl("/logout")
            .invalidateHttpSession(true)
            .permitAll()
            .and().cors().and().csrf().disable();
}
}
和一个控制器

@Controller
@RequestMapping(value = "/account")
public class AccountController {

@Autowired
private UserService userService;

@RequestMapping(value = "/show", method = RequestMethod.GET)
public String showAccount(){
    final String currentUserName = SecurityContextHolder.getContext().getAuthentication().getName();
    System.out.println(currentUserName);
    return "account";
}

}

我想在控制器中获取用户名,所以在这种情况下,我希望在控制台中打印ram。取而代之的是,即使我以ram身份登录,它仍会不断返回anonymousUser。如何获取用户名?

antMatchers(“/account/**”).Authenticated()

antMatchers(“/account/**”).Authenticated()

SecurityContextHolder.getContext().getAuthentication().getName();这是提取经过身份验证的用户的正确方法,我用同样的方法使用它。我唯一想到的可能是内存中的身份验证。也许您可以尝试使用内存中的数据库,甚至可以使用易于配置的真实数据库;这是提取经过身份验证的用户的正确方法,我用同样的方法使用它。我唯一想到的可能是内存中的身份验证。也许你可以尝试使用内存中的数据库,甚至可以使用易于配置的真实数据库。当我使用它时,spring不会将我重定向到“/account/show”页面。它只是一次又一次地显示登录表单可能是错误的用户名/密码?没有错误消息吗?点击F12,您登录后得到什么响应?登录和密码正确,没有错误消息,没有无效凭据消息,没有任何类型的消息。在使用了有效的用户名和密码后,它一直将我重定向到,这很奇怪。它到达控制器了吗?控制台中打印了什么?顺便问一下,您打开的初始URL是什么?当我使用它时,spring不会将我重定向到“/account/show”页面。它只是一次又一次地显示登录表单可能是错误的用户名/密码?没有错误消息吗?点击F12,您登录后得到什么响应?登录和密码正确,没有错误消息,没有无效凭据消息,没有任何类型的消息。在使用了有效的用户名和密码后,它一直将我重定向到,这很奇怪。它到达控制器了吗?控制台中打印了什么?顺便问一下,您打开的初始URL是什么?