shiro

shiro 认证问题

末鹿安然 提交于 2020-02-22 02:23:01
@RequestMapping("/login") public String login(@RequestParam("username") String username, @RequestParam("password") String password){ Subject currentUser = SecurityUtils.getSubject(); if (!currentUser.isAuthenticated()) { // 把用户名和密码封装为 UsernamePasswordToken 对象 UsernamePasswordToken token = new UsernamePasswordToken(username, password); // rememberme token.setRememberMe(true); try { System.out.println("1. " + token.hashCode()); // 执行登录. currentUser.login(token); } // ... catch more exceptions here (maybe custom ones specific to your application? // 所有认证时异常的父类. catch (AuthenticationException ae)

spring cloud分布式微服务-Spring Boot 整合 Shiro

自古美人都是妖i 提交于 2020-02-19 14:13:46
在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro。 般来说,Spring Security 和 Shiro 的比较如下: 了解springcloud架构可以加求求:三五三六二四七二五九 Spring Security 是一个重量级的安全管理框架;Shiro 则是一个轻量级的安全管理框架 Spring Security 概念复杂,配置繁琐;Shiro 概念简单、配置简单 Spring Security 功能强大;Shiro 功能简单 虽然 Shiro 功能简单,但是也能满足大部分的业务场景。所以在传统的 SSM 项目中,一般来说,可以整合 Shiro。 在 Spring Boot 中,由于 Spring Boot 官方提供了大量的非常方便的开箱即用的 Starter ,当然也提供了 Spring Security 的 Starter ,使得在 Spring Boot 中使用 Spring Security 变得更加容易,甚至只需要添加一个依赖就可以保护所有的接口,所以,如果是 Spring Boot 项目,一般选择 Spring Security 。 这只是一个建议的组合,单纯从技术上来说,无论怎么组合,都是没有问题的。 在 Spring Boot 中整合 Shiro

Caused by: org.apache.catalina.LifecycleException: Failed to start component [NonLoginAuthenticator[

时光毁灭记忆、已成空白 提交于 2020-02-17 14:35:08
Caused by: org.apache.catalina.LifecycleException: Failed to start component [NonLoginAuthenticator[StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]]] 报错的pom文件 正常运行的pom 报错日志 记录一个奇怪的问题 pom文件 spring-boot-starter-web 依赖的位置影响程序运行 求大佬解答 报错的pom文件 spring-boot-starter-web 依赖 放在shiro依赖的后面 启动时候就会报错 <?xml version="1.0" encoding="UTF-8"?> < project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns: xsi = " http://www.w3.org/2001/XMLSchema-instance " xsi: schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd " > < modelVersion > 4.0.0 </

SpringBoot整合Shiro

两盒软妹~` 提交于 2020-02-17 02:17:23
1. shiro简介以及功能描述 Shiro 是 Java 的一个安全框架。目前,使用 Apache Shiro 的人越来越多,因为它相 当简单,对比 Spring Security,可能没有 Spring Security 做的功能强大,但是在实际工作时 可能并不需要那么复杂的东西,所以使用小而简单的 Shiro 就足够了。 Authentication :身份认证/登录,验证用户是不是拥有相应的身份; Authorization :授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用 户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用 户对某个资源是否具有某个权限; Session Manager :会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信 息都在会话中;会话可以是普通 JavaSE 环境的,也可以是如 Web 环境的; Cryptography :加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support :Web 支持,可以非常容易的集成到 Web 环境; Caching :缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率; Concurrency :shiro 支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能 把权限自动传播过去;

Spring Boot shiro+cas单点登录

夙愿已清 提交于 2020-02-16 23:27:53
Spring Boot shiro+cas单点登录 搭建Cas服务器 客户端 pom.xml 继承CasRealm application.yml UrlBean ShiroConfig 遗留问题??? 项目架构 2.1.11.RELEASE 项目源码 https://github.com/jsong93/Spring-Boot-shiro-cas-sso.git 根据SpringMVC项目改写 SpringMVC shiro+cas 单点登录 搭建Cas服务器 cas服务器搭建 md5+盐加密 客户端 pom.xml <?xml version="1.0" encoding="UTF-8"?> < project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns: xsi = " http://www.w3.org/2001/XMLSchema-instance " xsi: schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd " > < modelVersion > 4.0.0 </ modelVersion > < groupId > com.jsong.wiki </

shiro

流过昼夜 提交于 2020-02-16 01:23:21
https://www.cnblogs.com/WUXIAOCHANG/p/10886534.html https://blog.csdn.net/pengjwhx/article/details/84867112 来源: https://www.cnblogs.com/lgg20/p/12315411.html

springboot 引入shiro缓存及rememberMe支持

房东的猫 提交于 2020-02-14 08:02:34
来源: https://www.jianshu.com/p/22bf52e09e4d 最终demo 到这节为止,我们已经实现了身份验证和权限验证。但是,如果我们登录之后多次访问 http://localhost:8080/userInfo/userDel 的话,会发现权限验证会每次都执行一次。这是有问题的,因为像用户的权限这些我们提供给shiro一次就够了。 下面,我们开始给shiro添加缓存支持: 1.添加依赖 <!-- shiro ehcache --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-ehcache</artifactId> <version>1.2.2</version> </dependency> <!-- 包含支持UI模版(Velocity,FreeMarker,JasperReports), 邮件服务, 脚本服务(JRuby), 缓存Cache(EHCache), 任务计划Scheduling(uartz)。 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> 2.注入缓存 在 com

shiro cookie登录根据角色跳转不同页面的解决方案

百般思念 提交于 2020-02-14 08:00:01
先拿到cookie,再根据jsessionid来获取username,再进行角色判断即可。 @RequestMapping("/common/checkCookie") public void getUserInfo(HttpServletRequest request, HttpServletResponse response){ String sessionID = null; Cookie[] cookies = request.getCookies(); if (cookies == null){ System.out.println("cookie null"); }else { for (Cookie cookie : cookies) { System.out.println(cookie.getName() + " " + cookie.getValue()); if ("JSESSIONID".equals(cookie.getName())){ sessionID = cookie.getValue(); } } SessionKey key = new WebSessionKey(sessionID,request,response); try{ Session se = SecurityUtils.getSecurityManager()

springboot学习笔记:11.springboot+shiro+mysql+mybatis(通用mapper)+freemarker+ztree+layui实现通用的java后台管理系统(权限管理+用户管理+菜单管理)

安稳与你 提交于 2020-02-11 15:38:20
一.前言 今天我们用springboot集成shiro框架,实现一个可以通用的后台管理系统;包括用户管理,角色管理,菜单管理三大系统常用管理模块; 二.数据库表准备: 要想实现用户管理+角色管理+菜单管理三大模块,基本上我们常用的解决方案就是如下五个表(sql脚本在最后): 三.集成shiro和配置 1.添加pom依赖。 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</version> </dependency> 2.编辑shiro配置类:ShiroConfig.java package com.zjt.config; import com.zjt.realm.MyRealm; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.spring.LifecycleBeanPostProcessor;

毕设(校园交流平台)权限修正

Deadly 提交于 2020-02-10 21:07:29
日常求赞,感谢老板。 前段时间把毕设部署到了线上,果然当时懒惰没认真做权限,部署完没多久就被大佬看破了然后 好吧然后我就趁今天有时间修复下。 先说下现状 当时为了懒省劲(大家别学我)只在user表上加了一个字段判断是否管理员身份,权限上只在部分接口上加了,现在想起来还真是漏洞百出。 其实就管理员和普通用户两种角色,但由于后端权限未做全导致现在存在的问题: 管理员权限泄露 普通用户存在数据权限越权危险 想怎么做 由于之前引入了shiro框架,针对用户角色的限制可已通过增加shiro中自定义Realm来实现(之前没写),然后在只能管理员调用的接口前增加相应的注解来实现。 @Override protected AuthorizationInfo doGetAuthorizationInfo ( PrincipalCollection principalCollection ) { String userName = ( String ) principalCollection . getPrimaryPrincipal ( ) ; User user = iservice . getUserByUserName ( userName ) ; if ( user != null && user . getAdmin ( ) != null && StringUtils . equals