仿照shiro实现前后分离项目权限认证

本文介绍了如何在前后分离的项目中实现权限认证,模仿Shiro的机制。首先,通过前端登录生成token并存储在数据库,后续请求需携带token验证。接着,构建权限体系,包括角色、用户、页面和角色-用户映射表。通过自定义注解和拦截器,进行方法级别的权限控制。测试结果显示,系统能有效判断用户是否有权限访问特定操作。
摘要由CSDN通过智能技术生成

第一部分:访问控制
目的:防止非本系统用户通过http请求操作用户数据
方法
1 当用户执行登录操作的时候,由前端生成token传到后台,后台将token以及该token的过期的时间存储在数据库
2 往后所有的api请求头内必须携带该token,否则该请求无效。如果请求中携带token则前去数据库检索该token的有效性及是否超时
实现

@Component
//拦截所有路径
@WebFilter(urlPatterns = { "/**" }, filterName = "tokenAuthorFilter")
public class ConfigurationFilter implements Filter{
	@Autowired
	shiroService shiroService;
	//定义不需要拦截的url
	private static final Set<String> ALLOWED_PATHS = Collections.unmodifiableSet(new HashSet<>(
            Arrays.asList(
            		"webjars",
            		"druid", 
            		"swagger",
            		"v2",
            		"swagger-ui.html", 
            		"swagger-resources",
            		"configuration",
            		"images"
            		)
            )
			);

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
	}
	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		 HttpServletResponse responses = (HttpServletResponse) response;
		 HttpServletRequest requestes = (HttpServletRe
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值