首页>代码>SpringBoot医药管理系统>/springboot-drugs/src/main/java/com/simon/springbootdrugs/config/ShiroFilterConfiguration.java
package com.simon.springbootdrugs.config;

import at.pollux.thymeleaf.shiro.dialect.ShiroDialect;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 权限控制Shiro配置类
 *
 * @author Simon
 */
@Configuration
public class ShiroFilterConfiguration {

    /**
     * 创建过滤工厂Bean
     */
    @Bean
    public ShiroFilterFactoryBean shiroFilterFactoryBean() {
        //1.new一个工厂bean
        ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
        //2.需要注入参数
        shiroFilterFactoryBean.setSecurityManager(securityManager());
        /**
         *
         * Shiro内置过滤器,实现权限相关的拦截器
         * anon:无需登录,可以访问
         * authc:必须登录才可以访问
         */
        //9.设置权限访问
        Map<String, String> filterMap = new LinkedHashMap<>();
        filterMap.put("/static/**", "anon"); //static目录下都可以访问
        filterMap.put("/login", "anon"); //无需登录,可以访问
        filterMap.put("/toLogin", "anon"); //无需登录,可以访问
        filterMap.put("/**", "authc"); //剩下的全部  必须登录才可以访问

        //8.判断是否有权限
        shiroFilterFactoryBean.setFilterChainDefinitionMap(filterMap);
        //不登录自动转向的页面
        shiroFilterFactoryBean.setLoginUrl("/login");
        //登录后自动转向的页面
        shiroFilterFactoryBean.setSuccessUrl("/index");
        return shiroFilterFactoryBean;
    }

    /**
     * 3.权限管理
     */
    @Bean
    public DefaultWebSecurityManager securityManager() {
        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
        //4.用户登录权限认证,创建userRealm
        securityManager.setRealm(userRealm());
        return securityManager;
    }

    /**
     * 7.创建Realm ,认证用
     *
     * @return
     */
    @Bean
    public UserRealm userRealm() {
        UserRealm userRealm = new UserRealm();
        return userRealm;
    }

    /**
     * 10.thymeleaf整合Shiro
     */
    @Bean
    public ShiroDialect shiroDialect() {
        return new ShiroDialect();
    }
}
最近下载更多
Yj123456k  LV2 5月10日
王愉悦  LV4 2024年12月3日
zolscy  LV24 2024年11月26日
xinxin23383  LV7 2024年9月13日
微信网友_7134912998903808  LV15 2024年8月29日
sweetlove  LV20 2024年7月30日
樱花味小然子  LV5 2024年7月3日
破剑茶寮  LV4 2024年6月26日
TY0165  LV20 2024年6月16日
2775645521  LV7 2024年6月16日
最近浏览更多
haitianjiaoyu0  LV8 5月27日
Yj123456k  LV2 5月10日
gann2015  LV25 4月11日
zhao44413 2月21日
暂无贡献等级
zhangtian1997  LV10 2月5日
wangjinhao 1月20日
暂无贡献等级
geekcjj  LV18 2024年12月23日
苯科仔 2024年12月16日
暂无贡献等级
lovedy  LV2 2024年12月16日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友