CAS 之 Hello World(二)】的更多相关文章

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-…
一.配置文件介绍 关于spring的配置信息只需放入WEB-INF/spring-configuration目录即可,cas启动时会自动加载.这个目录下的spring配置文件几乎不需要改动. 在web.xml中配置 在WEB-INF/spring-configuration中 1./WEB-INF/spring-configuration/applicationContext.xml这个配置文件是cas的核心类配置,你不需要改动. 2./WEB-INF/spring-configuration/…
一 部署简述 cas server官方推荐采用overlay方式进行部署,通过替换自定义文件,减少项目文件改动,以简化开发和部署,这个有点类似于项目上直接替换java的class文件,由于和git的搭配使用,降低了版本不一致的问题; 二 部署 clone项目: git clone --depth=1 --single-branch --branch=5.3 https://github.com/liulei3/cas-overlay-template.git --depth:clone深度,1代…
Zabbix是一个强大的服务器/交换机监控应用,有zabbix-server, zabbix-client, zabbix-web 三部分.zabbix-web管理端是用php写的. 前文参考:CAS客户端整合(一) Discuz! 登录流程 修改代码前例行先确定登录流程 原登录过程 Zabbix的登录流程跟 Discuz 类似.系统从 cookie/session 中读取用户会话id,如果用户为 guest ,只提供部分页面访问.需要访问受限资源,需要再登录 CAS登录过程 Zabbix通过c…
转:http://blog.csdn.net/matthewei6/article/details/50709252 单点登录cas常见问题(一) - 子系统是否还要做session处理?单点登录cas常见问题(二) - 子系统是否会频繁访问cas中心?单点登录cas常见问题(三) - 单点登出时,子系统是否同步登出?单点登录cas常见问题(四) - ticket有哪些存储方式?单点登录cas常见问题(五) - service有哪些存储方式?单点登录cas常见问题(六) - cas中心配置的se…
知识点: 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…
一.问题在哪? 在配置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…
单点登出基本上没有啥配置 直接在原来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-…
之前的Cas服务器一直使用静态配置的账号密码进行身份认证,现在要让Cas服务器通过MySQL数据库中的用户信息进行身份认证. 一.添加数据库访问依赖 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</arti…
一.CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源.对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址.用户在第 3 步中输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度.…
一.搭建cas服务器 官网:http://jasig.github.io/cas/ Cas Server 下载:http://developer.jasig.org/cas/ Cas Client 下载:http://developer.jasig.org/cas-clients/ 测试环境: jdk:java version "1.8.0_60" tomcat:apache-tomcat-7.0.65 mysql:mysql5.5.40 CAS Server:cas-server-4…
一.前言   今天花了点时间了解了一下JDK1.8中ConcurrentHashMap的实现,发现它实现的主要思想就是依赖于CAS机制.CAS机制是并发中比较重要的一个概念,所以今天这篇博客就来详细介绍一下CAS机制以及Java中对CAS的适用. 二.正文  2.1 乐观锁与悲观锁   在讲CAS之前,先来理解两个概念,即乐观锁和悲观锁: 乐观锁:在并发下对数据进行修改时保持乐观的态度,认为在自己修改数据的过程中,其他线程不会对同一个数据进行修改,所以不对数据加锁,但是会在最终更新数据前,判断一…
B - Biorhythms Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit Status Practice POJ 1006 Description 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如,智力周期的高峰,人会思维敏捷,精力容易高度集中.因为三个周期的周长…
一.Java多线程 -- JUC包源码分析1 -- CAS/乐观锁 乐观锁其实就是不加锁,用CAS + 循环重试,实现多个线程/多个客户端,并发修改数据的问题 使用AtomicStampedReference类下的 public boolean compareAndSet(V expectedReference, //旧值 V newReference, //新值 int expectedStamp, //旧版本号 int newStamp //新版本号) 方法可实现原子性的CAS –上面的at…
Problem Description Marsha and Bill own a collection of marbles. They want to split the collection among themselves so that both receive an equal share of the marbles. This would be easy if all the marbles had the same value, because then they could…
题目出自:https://www.jianshu.com/p/c70989bd5f29本文出自 AWeiLoveAndroid的博客 2018年2月20日星期二 随笔 笔记 BAT 面试题 一.java面试题 熟练掌握java是很关键的,大公司不仅仅要求你会使用几个api,更多的是要你熟悉源码实现原理,甚至要你知道有哪些不足,怎么改进,还有一些java有关的一些算法,设计模式等等. (一) java基础面试知识点 java中==和equals和hashCode的区别 int.char.long各…
一.总线锁定和缓存一致性 这是两个操作系统层面的概念.随着多核时代的到来,并发操作已经成了很正常的现象,操作系统必须要有一些机制和原语,以保证某些基本操作的原子性.首先处理器需要保证读一个字节或写一个字节是无条件原子的,不存在读/写了一半被中断的情况(那样就会产生乱七八糟的值),但这还不够,在并发环境下,为了满足多线程的一致性,还必须提供更大范围原子性的操作,比如Compare And Swap操作(见后面CAS章节).操作系统有两种保证操作原子性的机制:总线锁定和缓存一致性. 我们知道,CPU…
CAS 之 Hello World(二) 标签(空格分隔): CAS Intro(介绍) 由上节可知Apereo CAS官方推荐使用 WAR Overlay 的方式进行部署: It is recommended to deploy CAS locally using the WAR Overlay method. 那么我们就使用这种方式进行的相关的构建和部署. 好处: 好处即 maven-war-plugin/overlays 插件的好处. 思想: WAR Overlay 的方式是基于 mave…
cas 单点登录(SSO)实验之二: cas-client 参考文章: http://my.oschina.net/indestiny/blog/200768#comments http://wenku.baidu.com/view/0bcc0d01e87101f69e319595.html 接上一篇文章: cas 单点登录(SSO)实验之一: jasig cas-server 安装 本文说明如何写一个web服务(cas-study),使用cas-server提供的验证服务.当用户访问这个cas…
一.锁机制存在的问题 (1)在多线程竞争下,加锁.释放锁会导致比较多的上下文切换和调度延时,引起性能问题. (2)一个线程持有锁会导致其它所有需要此锁的线程挂起. (3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险. ​ volatile是不错的机制,但是volatile不能保证原子性.因此对于同步最终还是要回到锁机制上来. ​ 独占锁是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁.而另一个更加有效…
一.Java当中CAS的底层实现首先看看AtomicInteger的源码,AtomicInteger中常用的自增方法 incrementAndGet: public final int incrementAndGet() { for (;;) { int current = get(); int next = current + 1; if (compareAndSet(current, next)) return next; } } private volatile int value; pu…
CAS单点登录系列: CAS 5.1.x 的搭建和使用(一)—— 通过Overlay搭建服务端 CAS5.1.x 的搭建和使用(二)—— 通过Overlay搭建服务端-其它配置说明 CAS5.1.x 的搭建和使用(三)—— 官方示例来熟悉客户端搭建 CAS5.1.x 的搭建和使用(四)—— 配置使用HTTP协议访问的服务端 这节主要解释一下上一节剩余的一些配置是做什么的,为了阅读方便直接在配置文件中写,四组分隔线中的内容就是 #STEP 3 在TOMCAT8.5中跑一个模板然后将其war包中解压…
一.Unsafe Java无法直接访问底层操作系统,而是通过本地(native)方法来访问.不过尽管如此,JVM还是开了一个后门,JDK中有一个类Unsafe,它提供了硬件级别的原子操作. 这个类尽管里面的方法都是public的,但是并没有办法使用它们,JDK API文档也没有提供任何关于这个类的方法的解释.总而言之,对于Unsafe类的使用都是受限制的,只有授信的代码才能获得该类的实例,当然JDK库里面的类是可以随意使用的. Unsafe类是在sun.misc包下,不属于Java标准.但是很多…
线程安全性: 当多个线程访问一个类的时候,这个类始终表示出正确的行为,那么这个类是线程安全的. 无状态的对象一定是线程安全的,例如大部分service.dao.Servlet都是无状态的. 线程安全体现: 1.原子性: 互斥访问,同一个时刻只有一个线程进行操作 2.可见性: 一个线程对变量的修改可以及时被其他线程看到 3.有序性: 一个线程观察其它线程中的指令执行顺序,由于指令重排序的操作该观察结果一般是无序的 原子性 1.CAS: 就是指compareAndSwap/compareAndSet…
更多Android架构进阶视频学习请点击:https://space.bilibili.com/474380680本篇文章将从以下几个内容来阐述CAS: [CAS原理] [CAS带来的ABA问题] 一.什么是CAS? 在计算机科学中,比较和交换(Conmpare And Swap)是用于实现多线程同步的原子指令. 它将内存位置的内容与给定值进行比较,只有在相同的情况下,将该内存位置的内容修改为新的给定值. 这是作为单个原子操作完成的. 原子性保证新值基于最新信息计算; 如果该值在同一时间被另一个…
Java并发编程之CAS二源码追根溯源 在上一篇文章中,我们知道了什么是CAS以及CAS的执行流程,在本篇文章中,我们将跟着源码一步一步的查看CAS最底层实现原理. 本篇是<凯哥(凯哥Java:kagejava)并发编程学习>系列之<CAS系列>教程的第二篇:从源码追根溯源查看CAS最底层是怎么实现的. 本文主要内容:CAS追根溯源,彻底找到CAS的根在哪里. 一:查看AtomicInteger.compareAndSet源码 通过上一篇文章学习,我们知道了AtomicIntege…