首页>代码>springboot整合vue实现进销存管理系统>/jxc_project-master/src/main/java/com/cdy/jxc_project/config/ShiroConfig.java
package com.cdy.jxc_project.config;

import com.cdy.jxc_project.utils.MysqlRealm;

import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
import org.apache.shiro.realm.Realm;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.apache.shiro.web.mgt.WebSecurityManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.HashMap;
import java.util.Map;

/*
 * @Project:jxc_project
 * @Author:cdy(缘生)
 * @Motto:放下杂念,只为迎接明天更好的自己
 * @Date:2023/5/8 14:37
 * */
@Configuration
public class ShiroConfig {
    /**
     * anon: 无需认证就可以访问
     * authc: 必须认证了才能访问
     * user: 必须拥有 记住我功能 才能用
     * perms: 拥有对某个资源的权限才能访问
     * role: 拥有某个角色权限才能访问
     */
    @Bean
    public ShiroFilterFactoryBean shiroFilterFactoryBean(){
        ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
        shiroFilterFactoryBean.setSecurityManager(defaultWebSecurityManager());
        //告知过滤器,需要去拦截那些请求,放行那些请求
          Map<String,String> maps = new HashMap<>();
     /* maps.put("/login/**","anon");//放行,允许匿名访问
        maps.put("/user/**","authc");//必须认证之后,才能访问,必须登录成功之后,才能访问
        maps.put("/login/main","authc");//主页面一定要认证之后才能使用
      设置都需要认证之后才能访问
        maps.put("/dept/**","authc");
        maps.put("/salary/**","authc");
      所有请求都需要拦截
        maps.put("/**","authc");*/
        maps.put("/admin/**","anon");
        maps.put("/doc.html","anon");
        maps.put("/goodsType/**","anon");
        //需要添加角色信息来判断
        shiroFilterFactoryBean.setFilterChainDefinitionMap(maps);
        //直接拦截到前端登录页面
        //shiroFilterFactoryBean.setLoginUrl("http://localhost:8080/#/");
        //处理md5加密
        return shiroFilterFactoryBean;
    }
    @Bean
    public DefaultWebSecurityManager defaultWebSecurityManager(){
        DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager();
        defaultWebSecurityManager.setRealm(mysqlRealm());
        return defaultWebSecurityManager;
    }
//  添加md5加密算法
    @Bean
    public Realm mysqlRealm(){
        MysqlRealm mysqlRealm = new MysqlRealm();
        //md5加密算法
        HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher();
        hashedCredentialsMatcher.setHashAlgorithmName("md5");
        //设置用户的安全凭证
        mysqlRealm.setCredentialsMatcher(hashedCredentialsMatcher);
        return mysqlRealm;
    }
}
最近下载更多
陈小灏  LV18 2月22日
liuyutong  LV3 2023年10月11日
小妹妹  LV7 2023年10月10日
笛卡尔积  LV6 2023年9月25日
yiy12345  LV2 2023年9月21日
guoyan  LV12 2023年9月15日
最近浏览更多
xp95323  LV15 6月10日
haitianjiaoyu0  LV8 5月27日
了在途中 5月22日
暂无贡献等级
木子520  LV12 5月14日
哪里的完整版  LV8 2月27日
docnnxxy688 2月26日
暂无贡献等级
andy_伟  LV6 2月25日
陈小灏  LV18 2月22日
zhao44413 2月21日
暂无贡献等级
weishenme1993  LV9 1月1日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友