springboot+shiro实现自定义header登录认证

本文介绍了如何使用SpringBoot结合Shiro实现基于自定义Header的登录认证。配置包括ShiroConfig的设置,如shiroFilter、realm和sessionManager。AdminAuthorizingRealm用于认证和授权,AdminWebSessionManager重置会话管理器,采用自定义头部替代cookie进行会话保持。登录流程涉及认证、授权,认证成功后在响应头写入定制信息,以便后续自动认证。
摘要由CSDN通过智能技术生成

springboot+shiro实现自定义header登录认证

基本配置

config子包的ShiroConfig引入了Shiro并配置了shirFilter、realm和sessionManager;
shiroFilter配置只允许少量url可以匿名访问,其他url都需要登录才能访问;
realm设置的是shiro子包的AdminAuthorizingRealm类,该类作用是认证和授权的功能;
sessionManager设置的是shiro子包的AdminWebSessionManager类,该类作用是重置会话管理器。
默认会话管理器是基于cookie实现会话保持,而这里是基于自定义头部实现会话保持。
经过以上步骤,shiro就配置正常。
当管理员登录时,先认证;
认证成功,则授权,在后端内保存roles和permissions;同时,在响应头部写入自定义头部和sessionId;
认证失败,则抛出认证异常;
管理员再次访问页面时,shiro通过自定义头自动认证成功。
ShiroConfig 类代码如下
package com.cnlink.authdemo.common;

import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.session.mgt.SessionManager;
import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

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

/**
 *
 * @Description:TODO(这里用一句话描述这个类的作用)
 *
 * @author: xc.deng
 *
 * @date:2019年7月1日 上午10:32:51
 *
 */
@Configuration
public class ShiroConfig {
    /**
     * ShiroFilterFactoryBean 处理拦截资源文件问题。
     * 注意:单独一个ShiroFilterFactoryBean配置是或报错的,以为在
     * 初始化ShiroFilterFactoryBean的时候需要注入:SecurityManager
     *
     * Filter Chain定义说明 1、一个URL可以配置多个Filter,使用逗号分隔 2、当设置多个过滤器时,全部验证通过,才视为通过
     * 3、部分过滤器可指定参数,如perm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值