创建配置类

    1. @Configuration
    2. public class ShiroConfig {
    3. //创建shiroFilter
    4. @Bean
    5. public ShiroFilterFactoryBean getShiroFilterFactoryBean(DefaultWebSecurityManager defaultWebSecurityManager){...}
    6. //创建安全管理器
    7. @Bean
    8. public DefaultWebSecurityManager getDefaultWebSecurityManager(Realm realm){....}
    9. //创建自定义realm
    10. @Bean
    11. public Realm getRealm(){
    12. return new CustomerRealm();
    13. }
    14. }

    配置ShiroFilterFactoryBean

    1. @Bean
    2. public ShiroFilterFactoryBean getShiroFilterFactoryBean(DefaultWebSecurityManager defaultWebSecurityManager){
    3. ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
    4. //给Filter设置安全管理器
    5. shiroFilterFactoryBean.setSecurityManager(defaultWebSecurityManager);
    6. // 配置系统的受限资源
    7. // 配置系统的公共资源
    8. Map<String,String> map = new HashMap<>();
    9. map.put("/index.jsp","authc");//authc 请求这个资源需要认证和授权
    10. //默认认证界面路径
    11. shiroFilterFactoryBean.setLoginUrl("/login.jsp");
    12. shiroFilterFactoryBean.setFilterChainDefinitionMap(map);
    13. return shiroFilterFactoryBean;
    14. }

    配置WebSecurityManager

    1. @Bean
    2. public DefaultWebSecurityManager getDefaultWebSecurityManager(Realm realm){
    3. DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager();
    4. //给安全管理器设置Realm
    5. defaultWebSecurityManager.setRealm(realm);
    6. return defaultWebSecurityManager;
    7. }

    创建自定义Realm

    1. public class CustomerRealm extends AuthorizingRealm {
    2. @Override
    3. protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
    4. return null;
    5. }
    6. @Override
    7. protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
    8. return null;
    9. }
    10. }

    配置自定义Realm

    1. //创建自定义realm
    2. @Bean
    3. public Realm getRealm(){
    4. CustomerRealm customerRealm = new CustomerRealm();
    5. return customerRealm;
    6. }

    访问主页
    image.png

    启动SpringBoot应用访问index
    image.png

    加入权限控制

    • 修改ShiroFilterFactoryBean配置 ```java //给Filter设置安全管理器 shiroFilterFactoryBean.setSecurityManager(defaultWebSecurityManager);

    // 配置系统的受限资源 // 配置系统的公共资源 Map map = new HashMap<>(); map.put(“/index.jsp”,”authc”);//authc 请求这个资源需要认证和授权

    ``` image.png
    /** 代表拦截项目中的一切资源 authc代表shiro中的一个filter的别名