首页>代码>SpringBoot整合Apache Shiro极简入门实例>/springboot-shiro-demo/src/main/java/com/simon/springbootshirodemo/configure/ShiroConfig.java
package com.simon.springbootshirodemo.configure;

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

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

/**
 * @author Simon
 */
@Configuration
public class ShiroConfig {

    @Bean
    public ShiroFilterFactoryBean getShiroFilterBean(@Qualifier("securityManager") DefaultWebSecurityManager defaultWebSecurityManager) {
        ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
        bean.setSecurityManager(defaultWebSecurityManager);
        Map<String, String> filterMap = new LinkedHashMap<>();
        //手动设置操作权限
        filterMap.put("/user/add", "anon");
        filterMap.put("/user/update", "authc");
        filterMap.put("/user/add", "perms[user:add]");
        filterMap.put("/user/update", "perms[user:update]");
        bean.setFilterChainDefinitionMap(filterMap);
        //未登录,,设置跳转登录页
        bean.setLoginUrl("/toLogin");
        //未授权,设置跳转未授权页
        bean.setUnauthorizedUrl("/noauth");
        return bean;
    }

    @Bean(name = "securityManager")
    public DefaultWebSecurityManager getDefaultWebSecurityManager(@Qualifier("userRealm") UserRealm userRealm) {
        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
        securityManager.setRealm(userRealm);
        return securityManager;

    }

    @Bean(name = "userRealm")
    public UserRealm userRealm() {
        return new UserRealm();
    }
    
    @Bean
    public ShiroDialect getShiroDialect() {
        return new ShiroDialect();
    }
}
最近下载更多
暂无贡献等级
Seaskye  LV14 2023年11月4日
Rommel  LV27 2022年11月27日
最代码-宋家辉  LV61 2022年11月22日
最代码官方  LV168 2022年11月20日
最近浏览更多
dapeng0011  LV15 7月8日
HSQSWNW  LV1 6月26日
17380184110 6月19日
暂无贡献等级
TY0165  LV20 6月17日
chenranr  LV10 6月15日
ma406805131  LV15 6月2日
chirsbey2 4月18日
暂无贡献等级
yhe107  LV3 4月17日
tqsDemo  LV5 3月15日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友