SpringSecurity用户认证
点击跳转: https://blog.csdn.net/weixin_45737330/article/details/127104915
文章目录
SpringSecurity用户授权
1、在配置类实现相关的配置
在SecurityConfig中添加重写方法
@Override
protected void configure(HttpSecurity http) throws Exception {
//自定义自己编写的登陆页面
http.formLogin()
.loginPage("/login.html") //登录页面设置
.loginProcessingUrl("/login") //登录访问路径
.defaultSuccessUrl("/index").permitAll() //登录成功之后,跳转路径
.and().authorizeRequests()
.antMatchers("/","/hello","/login").permitAll() //设置哪些路径可以直接访问,不需要认证
.anyRequest().authenticated()
.and().csrf().disable(); //关闭csrf防护
}
2、创建相关页面和controller
资源包下static里面创建login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/login" method="post">
用户名:<input type="text" name="username"><br/>
密码:<input type="text" name="password"><br/>
<input type="submit" value="登录">
</form>
</body>
</html>
**注意:**username和password在源码中固定死了,不能随便改。不然访问不到!
HelloController
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/")
public String hello(){
return "欢迎您的到来!";
}
@RequestMapping("/index")
public String index() {
return "登录成功,欢迎你进入首页页面!";
}
}
3、基于角色或权限进行访问控制
hasRole方法
前缀加上
ROLE_
源码分析:
如何使用
授权列表中加上前缀
授权成功,即可访问到相对应的授权页面!
4、自定义403没有权限访问的页面
如果你的授权列表中只有ROLE_sale
,而你的配置类中hasRole却不是sale
,这时访问页面会报403错误。
演示:
.
.
在static中创建页面unauth.html
(当然,这只是为了演示,网上很多好看的页面,换一下即可!)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>没有访问权限!</h1>
</body>
</html>
在SecurityConfig的重写方法中添加配置代码:
.
//配置没有权限访问跳转自定义页面
http.exceptionHandling().accessDeniedPage("/unauth.html");
SpringSecurity用户注销
点击跳转:
https://blog.csdn.net/weixin_45737330/article/details/127123226