乐趣区

关于shiro:如何控制项目的访问权限来保证项目安全SpringBoot-集成-Spring-Security-安全框架使用指南

平安框架

  • shiro
  • Spring Security
  • 应用程序的两个次要区域:认证 受权(这两个次要区域是 Spring Security 的两个指标)

    • 认证(Authentication):

      • 建设一个申明的主体过程
      • 一个 [主体] 个别是指 [用户],[设施] 或一些能够[在应用程序中执行动作的其它零碎]
    • 受权(Authorization):

      • 访问控制确定一个主体是否容许在你的应用程序执行一个动作的过程
      • 为了到达须要受权的点, 主体身份曾经有认证过程的建设

        Spring Security

  • 针对 Spring 我的项目的平安框架, 是 Spring Boot 底层平安模块默认的技术选型
  • 能够实现 web 安全控制, 只须要引入 spring-boot-starter-security 依赖配置即可
  • Spring Security 中的类:

    • WebSecurityConfigurerAdapter: 自定义 Security 策略
    • AuthenticationManagerBuilder: 自定义认证策略
    • @EnableWebSecurity: 开启 WebSecurity 模式

      1. 引入 spring-boot-starter-security 依赖
      
      2. 编写 SpringSecurity 配置类
      2.1 定制申请的受权规定
      2.2 开启主动配置的登录性能(/login 来到登录页; 重庆向到 /login?error 示意登录失败)
      2.3 开启主动配置的登记性能(拜访 /logout 申请, 示意用户登记并清空 session; 登记胜利返回 /login?logout)
      2.4 开启主动配置的记住明码性能(http.rememberMe();)- 登录胜利当前, 将 Cookie 发送给浏览器保留, 能够实现记住明码性能; 点击登记会删除 Cookie, 就没有记住明码性能
      默认 post 模式的 /login 代表解决登录
      2.5 定义认证规定
      @EnableSecurity
      public class MySecurityConfig extends WebSecurityConfigureAdapter{
      @Override
      protected void configure(HttpSecurity http) throws Exception{
          // 定制申请的受权规定
          http.authorizeRequest().antMatches("/").permitAll()
              .antMatches("/level/**").hasRole("VIP");
          // 开启主动配置的登录性能, 如果没有权限就会跳转到登录页面
          http.formLogin().loginPage("/");    // 跳转到自定义登录页
          http.logout().logoutSuccessUrl("/");    // 登记胜利返回首页
          http.rememberMe().rememberMeParameter("remember");    // 开启主动配置的记住明码性能
      }
      @Override
      protected void configure(AuthenticationManagerBuilder auth) throws Exception{auth.inMemoryAuthentication().withUser("username").password("password").roles("role1","role2")
                                       .and()
                                       .withUser("username").password("password").roles("role1","role2")
      }
      
      
      3. 管制申请的拜访权限
  • Thymeleaf Extras Springsecurity4
退出移动版