当前位置: 首页 > news >正文

武汉网站制作/成都最新数据消息

武汉网站制作,成都最新数据消息,wordpress是cms,简单的html css作业文章目录1.认证与授权2.基于数据库认证3.自定义登录页面4.授权方式4.1 基于角色授权4.2 基于权限授权1.认证与授权 认证与授权是Spring Secuirty最重要的核心功能。 认证: 代表的是用户和密码是否正确, 是建立一个他声明的主体的过程. 系统认为用户是否能登录。 授权: 系统判…

文章目录

      • 1.认证与授权
      • 2.基于数据库认证
      • 3.自定义登录页面
      • 4.授权方式
        • 4.1 基于角色授权
        • 4.2 基于权限授权

1.认证与授权

认证与授权是Spring Secuirty最重要的核心功能。

认证: 代表的是用户和密码是否正确, 是建立一个他声明的主体的过程. 系统认为用户是否能登录。

授权: 系统判断用户是否有权限去做某些事情。

2.基于数据库认证

这里利用的是Mybatis-plus

pom

        <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>

在这里插入图片描述

application.properties:

spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/demo01?serverTimezone=GMT%2B8&characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

mapper:

@Repository
public interface UserMapper extends BaseMapper<Users> {
}

javaBean: Users:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Users {private Integer id;private String username;private String password;
}

config:

在这里插入图片描述
service:

@Service("userDetailsService")
public class MyUserDetailService implements UserDetailsService {@Autowiredprivate UserMapper userMapper;@Overridepublic UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {QueryWrapper<Users> wrapper = new QueryWrapper<>();wrapper.eq("username", s);Users users = userMapper.selectOne(wrapper);if (users == null){throw new UsernameNotFoundException("未找到");}// 权限 + ROLE_角色List<GrantedAuthority> list = AuthorityUtils.commaSeparatedStringToAuthorityList("admin,ROLE_sale");UserDetails userDetails = new User(users.getUsername(), new BCryptPasswordEncoder().encode(users.getPassword()), list);return userDetails;}
}

第一个是利用mybatis-plus查询出数据库的用户名和密码, 然后进行认证。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.自定义登录页面

WebSecurityConfigurerAdapter#configure()
在这里插入图片描述

@Configuration
@MapperScan("com.atguigu.security01.mapper")
public class Config2 extends WebSecurityConfigurerAdapter {@Autowiredprivate UserDetailsService userDetailsService;@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());}@Beanpublic PasswordEncoder passwordEncoder(){return new BCryptPasswordEncoder();}@Overrideprotected void configure(HttpSecurity http) throws Exception {// 配置无权限的页面http.exceptionHandling().accessDeniedPage("/uauth.html");http.formLogin().loginPage("/login.html") // 登录页面设置.loginProcessingUrl("/user/login") // 登录成功后访问的controller路径.defaultSuccessUrl("/test/index").permitAll() // 登录成功后跳转的路径.and().authorizeRequests()// 不需要认证.antMatchers("/", "/test/hello", "/user/login").permitAll().anyRequest().authenticated() // 所有路径不用认证.and().csrf().disable();// 关闭csrf 防护}
}

登录页面设置为 login.html
失败页面设置为 uauth.html

在这里插入图片描述
这里需要强调一下: name必须为username 和 password

过滤器UsernamePasswordAuthenticationFilter#attemptAuthentication()

在这里插入图片描述
在这里插入图片描述
localhost:8111/test/index

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.授权方式

还是在配置类的configure方法中定义授权方式

  • 基于角色授权
  • 基于权限授权

在这里插入图片描述

4.1 基于角色授权

hasRole

在这里插入图片描述
根据hasRole方法可知, 基于角色的认证, 角色必须为ROLE_角色
在这里插入图片描述
比如上面的sale角色, 那么就需要加入ROLE_sale的角色授权

在这里插入图片描述

4.2 基于权限授权

hasAuthority, hasAnyAuthority

在这里插入图片描述
在这里插入图片描述
基于权限的授权, 先配置有这个权限的admin, 然后通过两个方法hasAuthority, hasAnyAuthority在WebSecurityConfigurerAdapter#config()中配置。

http://www.lbrq.cn/news/1119223.html

相关文章:

  • 做网站现在还行吗/搜索引擎营销经典案例
  • 南阳做网站电话/软文发布
  • 网站建设产品展示型的/怎么快速优化关键词
  • 诏安县建设局网站/如何做推广最有效果
  • 直播网站建设需要多少钱/百度网站推广怎么做
  • 一个专业做设计的网站/软文广告经典案例300字
  • 网站优化排名怎么做/厦门seo排名优化公司
  • 潍坊网站建设价格/全网营销平台
  • 承德网站建设公司/百度快照怎么打开
  • 全国新农村建设中心网站/免费b站推广入口
  • 山东省城市建设管理协会网站/军事新闻最新消息
  • 工程项目管理软件 免费/seo网络推广外包公司
  • 石家庄模板建站行业解决方案/网站开发的步骤
  • 网站开发wbs模板/云南seo
  • 创新的企业网站开发/镇江网页设计
  • 网站排名搜索/域名申请
  • 财务公司管理系统/抖音搜索seo排名优化
  • 南宁网站建设方案服务/厦门seo外包公司
  • 网站建设数据库是什么意思/广告位招商怎么找客户
  • 网站建设专家/近两年网络营销成功案例
  • 带孩子做网站/企业推广平台排行榜
  • 在线定制logo/西安网站seo诊断
  • 旅游网站设计模板图片/文娱热搜榜
  • 民宿客栈网站制作/宝鸡seo排名
  • 济南外贸网站建设公司/杭州网站优化多少钱
  • 深圳购物商城网站建设/某网站seo策划方案
  • wordpress网站打不开/裤子seo标题优化关键词
  • 微信开放平台与个人网站怎么/上海培训机构整顿
  • 凡客诚品官方网店下/seo站长工具查询
  • 做网站需要学会写代码吗/网站优化联系
  • lazyvim恢复gt键
  • 项目流程管理系统使用建议:推荐13款
  • 产品经理笔试考试回忆集(2025湖南某国企)
  • Mybatis07-缓存
  • Ext系列文件系统知识点
  • C#,List<T> 与 Vector<T>