2024年4月28日
[ 按照上篇的_cas_服务端的配置一样,集成_shiro_+pac__4j,其实在1.3还是1.2_shiro_-cas_就过期了,shiro_官方也让我们集成_pac__4j,但是居然居然没有demo,我也是服,,。。 此篇博客将集成_springboot+_cas_5+shir……
阅读全文
2024年4月28日
VIP文章 H阿布 于 2018-02-01 18:22:35 发布 在pac4j探索的上一篇文章大致讲述了一下buji-pac4j+CAS的认证流程。这里记录一下本人实现的最简单的单点登录,仅作为笔记、学习交流之用,戳这里获取本文源码。 一、项目框架 1、 buji-pac4j(v.3.0.0) 2、shiro (v.1.4.0) 3、spring……
阅读全文
2024年4月28日
CAS单点登录-客户端集成(shiro springboot jwt pac4j)(十) 由于我们通常在业务上会有以下的使用场景: 移动端通过业务系统鉴权 移动端免登录(登录一次以后) 解决方案: JWT(token认证方案) OAuth(第三方认证) PS:若想继续往下读,必须具备JWT的基本概念以及Pac4j的认证原……
阅读全文
2024年4月28日
VIP文章 H阿布 于 2018-02-01 18:22:35 发布 在pac4j探索的上一篇文章大致讲述了一下buji-pac4j+CAS的认证流程。这里记录一下本人实现的最简单的单点登录,仅作为笔记、学习交流之用,戳这里获取本文源码。 一、项目框架 1、 buji-pac4j(v.3.0.0) 2、shiro (v.1.4.0) 3、spring……
阅读全文
2024年4月28日
引入依赖 <dependencies> <!-- shiro-spring --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> </dependency> <!-- buji-pac4j --> <dependency> <groupId>io.buji</groupId> <artifactId>buji-pac4j</artifactId> <version>4.1.0</version> </dependency> <!-- shiro-cas --> <dependency> <groupId>org.pac4j</groupId> <artifactId>pac4j-cas</artifactId> <version>3.6.1</version> </dependency> </dependencies> 配置web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <!-- 配置单点退出过滤器 --> <filter> <filter-name>ssoutFilter</filter-name> <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> <!-- 配置CAS服务URL前缀 --> <init-param> <param-name>casServerUrlPrefix</param-name> <param-value>http://sso.pinyougou.com</param-value> </init-param> </filter> <filter-mapping> <filter-name>ssoutFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 配置Spring核心监听器 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext-*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 配置Spring委派过滤器代理(要求Spring容器中有了个b……
阅读全文
2024年4月28日
代码如下: public class UserRealm extends Pac4jRealm(){ @Override public AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { // TODO Auto-generated method stub System.out.println("Onece"); Set<String> roles=new HashSet()<>; roles.add("admin"); SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo(); authorizationInfo.setRoles(roles); return authorizationInfo ; } 在controller层有一个方法 @RequestMapping("/hello2") @ResponseBody public String hello2() { SecurityUtils.getSubject().checkRoles("user"); return "success"; } 当执行chekRoles 执行了doGetAuthorizationInfo() 方法 但是要打印两个"Onece" 请问这是什么原因呢? 原因……
阅读全文
2024年4月28日
现在咱们开发环境搭好了就一切好办了 只需要增加两个类,修改两个配置文件就ok了 第一个类,登录验证类 类里面用到了 com.mysql.jdbc.Driver,所以你们懂得,记得在pom里面加入对mysql驱动的依赖,上一篇里提到过了 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27……
阅读全文
2024年4月28日
VIP文章 H阿布 于 2018-01-27 17:26:05 发布 一、初步认识buji-pac4j 公司单点登录cas客户端用的是shiro的shiro-cas模块,但从源码看来,shiro不建议再使用shiro-cas,也就是说shiro-cas模块的相关都被shiro标注为@Deprecated,并推荐使用的代替方案……
阅读全文
2024年4月28日
[ logger(“org.springframework.security”,DEBUG,[‘STDOUT’],false)logger(“grails.plugin.springsecurity”,DEBUG,[‘STDOUT’],false)logger(“org.pac__4j",DEBUG,[‘STDOUT’],false) 1 2 3 ](https://blog.csdn.net/yangbo_hr/article/details/105531294)……
阅读全文
2024年4月28日
之前没在shiroConfig里加public FilterRegistrationBean singleSignOutFilter() ;可以实现单点登录,登出有问题,家里这个方法后,启动报错: java.lang.IllegalArgumentException: casServerUrlPrefix cannot be null. at org.jasig.cas.client.util.CommonUtils.assertNotNull(CommonUtils.java:87) at org.jasig.cas.client.session.SingleSignOutHandler.init(SingleSignOutHandler.java:130) at org.jasig.cas.client.session.SingleSignOutFilter.init(SingleSignOutFilter.java:54) ………………………………… package com.audaque.gm.config; import com.audaque.gm.modules.sys.shiro.ShiroPermsFilterFactoryBean; import com.audaque.gm.modules.sys.shiro.UserFilter; import com.audaque.gm.modules.sys.shiro.UserPermFilter; import com.audaque.gm.modules.sys.sso.CallbackFilter; import com.audaque.gm.modules.sys.sso.CasRealm; import com.audaque.gm.support.shiro.listener.UserSessionListener; import com.audaque.gm.support.shiro.session.UserSessionDAO; import com.audaque.gm.support.shiro.session.UserSessionFactory; import io.buji.pac4j.filter.LogoutFilter; import io.buji.pac4j.filter.SecurityFilter; import io.buji.pac4j.subject.Pac4jSubjectFactory; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.session.SessionListener; import org.apache.shiro.session.mgt.SessionManager; import org.apache.shiro.session.mgt.eis.MemorySessionDAO; import org.apache.shiro.session.mgt.eis.SessionDAO; import org.apache.shiro.spring.LifecycleBeanPostProcessor; import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor; import org.apache.shiro.spring.web.ShiroFilterFactoryBean; import org.apache.shiro.web.mgt.DefaultWebSecurityManager; import org.apache.shiro.web.servlet.SimpleCookie; import org.apache.shiro.web.session.mgt.DefaultWebSessionManager; import org.jasig.cas.client.session.SingleSignOutFilter; import org.jasig.cas.client.session.SingleSignOutHttpSessionListener; import org.pac4j.core.config.Config; import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.DependsOn; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; import org.springframework.web.filter.DelegatingFilterProxy;……
阅读全文