Java 通过POST/Login API实现Spring安全登录
我正在创建一个具有自己的登录/注册视图/页面的应用程序/网页。 我的后端服务是Java,并使用Spring安全性来管理用户的身份验证 基本目标是(从应用程序中):-Java 通过POST/Login API实现Spring安全登录,java,spring,spring-boot,spring-security,Java,Spring,Spring Boot,Spring Security,我正在创建一个具有自己的登录/注册视图/页面的应用程序/网页。 我的后端服务是Java,并使用Spring安全性来管理用户的身份验证 基本目标是(从应用程序中):- 通过/RegisterAPI注册用户。(注册页面已在客户端上) 显示登录页面(已在客户端) 点击/loginapi以使用提供的用户名和密码对用户进行身份验证。(在JSON POST请求中提供) 成功后,返回一个cookie,用于下一个操作/api调用,以验证登录的用户 登录和注册API都将作为公共API启用 这是我的春季安全配置 /
/Register
API注册用户。(注册页面已在客户端上)/login
api以使用提供的用户名和密码对用户进行身份验证。(在JSON POST请求中提供)//all imports
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
private PasswordEncoder passwordEncoder;
@Autowired
public SecurityConfig(PasswordEncoder passwordEncoder) {
this.passwordEncoder = passwordEncoder;
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/login", "/register").permitAll() //to allow these urls
.anyRequest().authenticated().and()
// dont want Spring's Login page to get rendered
.formLogin().loginProcessingUrl("/login").and().rememberMe();
}
@Override
@Bean
protected UserDetailsService userDetailsService() {
//for HTTP Basic Auth - but needs to be removed to implement Cookie based authentications
UserDetails userDetails = User.builder().
username("admin").
password(passwordEncoder.encode("admin")).
roles("ADMIN").
build();
return new InMemoryUserDetailsManager(userDetails);
}
}
我担心的是loginProcessingUrl()
不会重定向我的URLhttps:///login
请求其映射的控制器方法,该方法从DB内部获取用户并进行验证。
也https:///register
PostAPI不起作用,它每次都要求登录
浏览了所有的Spring文档和教程,但似乎没有人回答这样的问题
如何实现这一点?loginProcessingUrl(“/path”)
是通知Spring security处理凭据的路径。请注意,这不会将请求传递给控制器方法
要显示自己的登录页面而不是默认页面,您应该使用loginPage(“/login”)
。这是返回HTML页面的GET请求
你可能对我感兴趣
请参阅此JSON帖子,了解登录名
/login
将不起作用。它将是表单数据。除非您想拥有自己的/login
控制器,该控制器接受并调用用于same@Rajeev还有什么例子我可以参考吗?是否严格强制使用formData?就是这样,我不想从服务器获取html。我在客户端应用程序上有自己的html页面,可以调用/login
POST