一.问题在哪? 在配置cas-client中,有这么一段配置: <filter> <filter-name>CAS Filter</filter-name> <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> <init-param> <param-name>casServerLoginUrl</p…
CAS-Server下载地址:https://www.apereo.org/projects/cas/download-cas CAS-Client下载地址:http://developer.jasig.org/cas-clients/ CAS官方教程: https://wiki.jasig.org/display/CASUM/CAS+on+Windows+Quick+Setup+Guide 版本: CAS Server版本:cas-server-3.4.11 CAS Client版本:cas-…
知识点: SSO:单点登录(Single Sign On),是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. CAS:耶鲁大学开发的单点登录(Single Sign On)系统称为CAS(Central Authentication Server),他是一个开源的.相对比较简单易用的SSO解决方案. SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer…
问题: CAS自带的用户验证逻辑太过简单,如何像正常网站一样,通过验证DB中的用户数据,来验证用户以及密码的合法性呢? 方案1:CAS默认的JDBC扩展方案: CAS自带了两种简单的通过JDBC方式验证用户的处理器. 1.QueryDatabaseAuthenticationHandler 2.SearchModeSearchDatabaseAuthenticationHandler 这两个处理类位于cas-server-support-jdbc这个扩展工程下. 第一步:改写用户验证处理器 打开…
CAS默认的登录页面样式如下,只有用户名与密码两项验证项目. 现在需要为首页登录加上验证码功能. 第一步:首页对默认登录页面的样式进行了调整,使其看上去还算美观. 在页面上加上了验证码项目. 第二步:导入验证码生成工具包及生成验证码配置 pom.xml中加入如下配置 <dependency> <groupId>com.google.code.kaptcha</groupId> <artifactId>kaptcha</artifactId> &l…
单点登出基本上没有啥配置 直接在原来logout的时候,重定向到Cas-Server的logout方法 @RequestSecurity @RequestMapping(value = "loginout", method = { RequestMethod.GET, RequestMethod.POST }) public String loginout(HttpSession session) { session.invalidate(); return "redirec…
我的预想情况 一般情况下,当用户登录一个站点后,如果长时间没有发生任何动作,当用户再次点击时,会被强制登出并且跳转到登录页面, 提醒用户重新登录.现在我已经为站点整合了CAS,并且已经实现了单点登录以及单点注销,那么当用户使用过程中,发生了超时的情况, 估计也是自动的强行登出了吧,而且可能其他部署了Cas的站点也跟着自动登出了. 我是这么猜想的. 那么实际情况到底是什么样的 首先先列出我自己开发过程中的遇到的一系列疑问: 1.Cas-Client超时后发生了什么? 2.Cas-Server超时后…
前期在学习CAS部署的过程中,都是网上各种教程,各种方案不停的尝试. 期间各种侵入改源码,时间久了,改了哪个文件,改了哪段配置,增加了哪段代码,都有可能混淆不清了. 而且最大的问题是,万一换个人来维护或者哪天需要升级CAS版本,从何下手? 还好,maven的overlay的功能,可以帮助我解决这个问题. 什么是maven的overlay? overlay可以把多个项目war合并成为一个项目,并且如果项目存在同名文件,那么主项目中的文件将覆盖掉其他项目的同名文件. 于是,我就可以完全不修改cas-…
一.拦截器与过滤器的区别 1.过滤器 依赖于servlet容器.在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次.使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据,比如:在过滤器中修改字符编码:在过滤器中修改HttpServletRequest的一些参数,包括:过滤低俗文字.危险字符等. 2.拦截器 依赖于web框架,在SpringMVC中就是依赖于SpringMVC框架.在实现上基于java的反射机制,属于面向切面编程(AOP)的…
出处:http://blog.csdn.net/tch918/article/details/22276627 自从CAS 3.4就很好的支持了单点注销功能,配置也很简单. 之前版本因为在CAS服务器通过HttpClient发送消息时并未指定为POST方式,所以在CAS客户端的注销Filter中没有收到POST请求(要知道Filter只对Post请求起作用),也就没有做session销毁处理. 两个业务系统APP1和APP2 在没有配置单点退出时,效果是这样子的 1:登录APP1,然后经过CAS…
自从CAS 3.4就很好的支持了单点注销功能,配置也很简单. 之前版本因为在CAS服务器通过HttpClient发送消息时并未指定为POST方式,所以在CAS客户端的注销Filter中没有收到POST请求(要知道Filter只对Post请求起作用),也就没有做session销毁处理. 两个业务系统APP1和APP2 在没有配置单点退出时,效果是这样子的 1:登录APP1,然后经过CAS认证后进入APP1,再访问APP2无需要认证 2:在APP1中连接到cas的logout地址,现象注销成功界面,…
什么是单点登录(SSO) 单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录. 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. web系统如何实现单点登录 目前已经有了成熟的单点登录实现方案,比如CAS,我们只要在web系统中应用单点登录方案CAS即可.(主要涉及到注册登录验证等模块的改动…
本文目标 基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式实现CAS客户端登出及单点登出. 本文基于<CAS学习笔记三:SpringBoot自动/手动配置方式集成CAS单点登录>的代码扩充而来,完整代码见 https://github.com/hellxz/cas-integration-demo CAS服务端配置 单点登出跟随 service 给出的跳转地址重定向功能 在 CAS 服务端默认是关闭的,所以需要先开启它. vim webapps/cas/WEB-I…
题记: 偶尔的偶尔我们会听到这个站点的数据泄露了,那个站点的用户数据泄露了.让用户又一次改动登录password,所以,对于用户数据安全性越发的引起我们的重视了,尤其是一些保密性要求高的站点.更须要添加安全性了. 正文: 对于安全性问题.我们怎样解决呢? 解决方式: 1.避免sql注入问题. 2.用户登录password加密. 3.使用https安全訪问方式. 4.使用第三方设备.像银行一般使用的password口令. 5.... 前三种方案是比較常见的.这里主要说第四种解决方式,我们在前三种方…
精彩理解:  https://www.jianshu.com/p/21be831e851e ;  https://blog.csdn.net/heyutao007/article/details/19975665 ; 备选参考:https://blog.csdn.net/tanga842428/article/details/52742698: https://www.cnblogs.com/yitong0768/p/4555445.html : CAS有3个操作数,内存值V,旧的预期值A,要修…
作为Cas服务器,允许哪些客户端接入与否是通过配置来定义的.对Cas服务器来说,每一个接入的客户端与一个Service配置对应:在Cas服务器启动时加载并注册上这些Service,与之对应的客户端才能接入.否则将出现 一.假设Cas服务器为HTTPS类型 假设我们的Cas服务器运行在8443端口,以HTTPS协议对外提供服务(<Cas 服务器 下载.编译及部署>中的cas服务器配置). 1.1 Cas客户端类型为HTTP应用时的配置 假设我们的Cas客户端以HTTP协议来对外提供服务,对外提供…
Java并发编程之CAS第三篇-CAS的缺点 通过前两篇的文章介绍,我们知道了CAS是什么以及查看源码了解CAS原理.那么在多线程并发环境中,的缺点是什么呢?这篇文章我们就来讨论讨论 本篇是<凯哥(凯哥Java:kagejava)并发编程学习>系列之<CAS系列>教程的第三篇:CAS的缺点有哪些?怎么解决. CAS的缺点 一:do while循环时间长的话开销大 从源码中(见上图),我们可以知道do while中的while返回true会一直循环下去(具体分析步骤见上一篇:<…
首先是让Django项目与mysql数据库初步建立连接 具体做法见:pycharm连接mysql(注意其中第二步MySQL驱动最好安装最新版的) 这里讲一下我在做这一步遇到的问题.一般Driver 那里的com.mysql.cj.jdbc.Driver是会自动显示的,但我一开始不显示因为我的mysql-connector-java-8.0.19文件夹如下,重复了,(这个是我拿下载到的zip选择解压文件得到的),得选第二个mysql-connector-java-8.0.19才有效:正确的mysq…
SpringBoot注册登录(一):User表的设计点击打开链接 SpringBoot注册登录(二):注册---验证码kaptcha的实现点击打开链接 SpringBoot注册登录(三):注册--验证账号密码是否符合格式及后台完成注册功能点击打开链接 SpringBoot注册登录(四):登录功能--密码错误三次,需要等待2分钟才能登录,固定时间内不能登录点击打开链接 SpringBoot注册登录(五):登录功能--Scheduling Tasks定时作业,用于某个时间段允许/不允许用户登录点击打…
如果想将动态管理资源与自定义登录页面一起使用,最简单的办法就是在数据库中将登录页面对应的权限设置为IS_AUTHENTICATED_ANONYMOUSLY. 因此在数据库中添加一条资源信息. INSERT INTO RESC VALUES(1,'','URL','/login.jsp*',1,'') 这里的/login.jsp*就是我们自定义登录页面的地址. 然后为匿名用户添加一条角色信息: INSERT INTO ROLE VALUES(3,'IS_AUTHENTICATED_ANONYMOU…
腾讯QQAndroid API调用实例(QQ分享无需登录)   主要分为两个步骤: 配置Androidmanifest.xml 修改activity里边代码 具体修改如下:   1.Activity代码 package com.corele.qqshare;   import android.app.Dialog; import android.content.Intent; import android.os.Handler; import android.support.v7.app.App…
Java结合SpringBoot拦截器实现简单的登录认证模块 之前在做项目时需要实现一个简单的登录认证的功能,就寻思着使用Spring Boot的拦截器来实现,在此记录一下我的整个实现过程,源码见文章底部. 1. 环境搭建 IntelliJ IDEA + Java8 + Spring Boot + Tomcat 我将之前项目中的登录模块抽离出来,单独放在了一个新建的Spring Boot项目中: 整个项目的主要结构如下: 参考资料:使用IDEA创建Spring Boot项目 2. 代码详解 2.…
一工厂的中控服务器遇到了下面Alert提示,'XXX\SERVERNAME$'  XXX表示对应的域名, SERVERNAME$(脱敏处理,SERVERNAME为具体的服务器名称+$),而且如下所示,客户端是本机,研究了一下,才搞清楚具体原因. 日期/时间:  2017/6/20 12:24:51 说明:   用户 'XXX\SERVERNAME$' 登录失败. 原因: 找不到与提供的名称匹配的登录名. [客户端: <local machine>] 该服务器本身不需要Reporting Ser…
无需登录-悟空CRM 存储型XSS 审计悟空的缘由是看见某云爆出CRM的getshell,于是就想着去挖出来瞅瞅!但可能自己把自己给局限了,就想着去挖那些无限制访问的文件. 故事的发生点 漏洞文件:/App/Lib/Action/LogAction.class.php public function wxadd(){         if($_POST['subject']){             $log = M('Log');             $log->create();   …
该漏洞只存在于Social Warfare插进的3.5.0.3.5.1和3.5.2版本中,其他版本不存在. 2019年3月21日插件作者紧急发布了3.5.3版本以修复高危的RCE漏洞,在<=3.5.2版本中存在一处无需登录即可getshell的RCE漏洞. 漏洞分析 在/wp-content/plugins/social-warfare/lib/utilities/SWP_Database_Migration.php文件中有一处eval()函数,该函数将file_get_contents()读取…
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/NUPTboyZHB/article/details/24384713 简介: 上一篇博文简单的介绍了一下AA(AndroidAnnotation)的简单使用,本博客简介Rest注解的使用. 官方站点介绍:https://github.com/excilys/androidannotations/wiki/Rest-API#rest 1.无需登录 ,直接通过post或者get获取 该方式和jquer…
C#编译器优化那点事   使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的.优化代码开关即optimize开关,和debug开关一起,有以下几种组合. 在Visual Sutdio中新建一个C#项目时,项目的“调试”(Debug)配置的是/optimize-和/debug:full开关,而“发布”(Release)配置指定的是/optimize+和/debug:pdbonly开关…
Linux查看系统当前登录用户的命令,top命令看到users有多个用户登录 作为系统管理员,top命令看到users有多个用户登录,会需要查看下是否被黑客进入了. 实战例子:top命令:top - 02:54:45 up 1 day, 2:32, 3 users-----------[root@alternative-unicorn-2 ~]# whoroot pts/0 2019-09-18 02:27 (113.117.124.181)root pts/1 2019-09-18 02:37…
springmvc之静态资源访问不到 -记一次惨痛的经历 问题描述:项目正常启动,可以访问页面,但是无法找到静态资源文件,如css,js等文件资源. 控制台: $ 未定义 页面: GET http://localhost:8080/SpringMvc16_20/js/jquery,min.js net::ERR_ABORTED 404 (Not Found) 问题原因:是web.xml下对spring的DispatcherServlet请求url映射的配置,原配置如下: <!DOCTYPE we…
这个问题困扰了我一天,看了下面两个文章,豁然开朗: https://www.cnblogs.com/gj1990/p/8057348.html https://412887952-qq-com.iteye.com/blog/2392741 按照如下方法即可解决无法显示静态资源问题: 一.让springboot拦截器来接管静态资源,同时在shiroconfig中通过new方式注册过滤器 1.代码一 import java.util.Arrays; import org.slf4j.Logger;…