1、Spring Security 框架入门 小Demo
2、pom.xml 依赖
3、web.xml springSecurity配置 Filter
4、spring-Security.xml
//login.html 设置页面不需要登陆也可以访问 相当于白名单
//页面拦截部分
//use-expressions="false" 不配为false
//
//开启表单登陆功能 login-page="登陆页面" default-target-url="登陆成功后的页面" always-use-default-target="true" 总是跳转到登陆后的默认页面
//关闭默认的token认证,未关闭前前防止CSRF攻击,不关闭页面必须是jsp页面,可以在自动生成的页面拷贝
//框架也允许使用iframe,不被拦截
//登出
//认证管理器
//认证的提供方
//authorities 属于那个角色
5、启动项目会自动生成登录页面
6、自已创建一个登录页面
7、显示登录名
@Controller
loginController{
@RequestMapping("/name")
public Map name(){
String username= SecuriryContextHodel.getContext().getAuthentication().getName();
}
}
___________________________________________________________________
8、密码在数据库中
/**
认证类
*/
public class UserDEtailsServiceImpl implements UserDetailsService{
//必须实现的方法
public UserDetails loadUserByUsername(String username) throws UserNameNotFoundException(){
//new User(用户名,"密码",拥有的角色)
//构建一个角色列表
List
grantAuths.add(new SimpleGrantedAuthority("ROLE_SELLER"));
return new User(username,"123456",grantAuths);
//return null; 密码错误返回null
}
}
9、springSecurity.xml
//login.html 设置页面不需要登陆也可以访问 相当于白名单
//页面拦截部分
//use-expressions="false" 不配为false
//
//开启表单登陆功能 login-page="登陆页面" default-target-url="登陆成功后的页面" always-use-default-target="true" 总是跳转到登陆后的默认页面
//关闭默认的token认证,未关闭前前防止CSRF攻击,不关闭页面必须是jsp页面,可以在自动生成的页面拷贝
//框架也允许使用iframe,不被拦截
//登出
//认证管理器
//认证的提供方
//密码加密用的算法
//认证类
//使用set注入远程获取service接口实现类,因为用的是dubbox
//引入dubbox
//远程到注册中心找接口的实现,相当于bean
//登陆时告诉用什么密码加密,密码加密的工具类
10.密码加密
MD5: 加密32位的字符串 不可逆(哈希算法)
伪解谜:通过海量数据
BCrypt加密算法 (60个位数的字符串)
//密码加密
BcryptPasswordEncoder passwordEncoder=new BcryptPasswordEncoder();
String password=passwordEncoder.encode(user.getPassword());
user.setPassword(password);