校内CAS单点登录的审计日志中,用户的IP地址一直是服务器地址。这个问题拖了好久,今天终于解决了。 通过追查日志的来源,发现是自己实现了一个appender配置在了log4j中。 从这个类入手开始追查代码,最终发现IP的来源是通过request.getRemoteAddr这个方法来获得的。 而这个方法是来源于tomcat自身的servlet-api提供,返回的向tomcat发起请求的客户端IP。 但是一般情况下tomcat都会用nginx或apache代理tomcat,所以这个方法得到的IP就是服务器自身的IP而不是真实的远程IP了 而我又不想更改CAS的源码重新部署,所以只能想办法更改tomca ...
gradle入门中文教程
—————————下面是废话,可以忽略—————————- 第一次见到gradle是在写Android的时Android Studio下方的提示,那时候还没有仔细研究。第二次是在搭建校内中央认证的时候,由于需要研究代码不得不从源码导入idea,但是官方只有一堆源码,没有任何idea的项目文件。idea的依赖是存在.idea文件夹下的xml中的,而这个项目的依赖都写在了gradle文件中,当时费了好多时间才把官方4.2.0的源码成功导入,手工解决各种依赖问题,我高 ...
CAS认证之数据库认证
原文:https://apereo.github.io/cas/4.2.x/installation/Database-Authentication.html Database Authentication 当使用Maven WAR overlay部署的时候,数据库认证组件通过增加下面内容启用: XHTML <dependency> <groupId>org.jasig.cas</groupId> <artifactId>cas-server-support-jdbc</artifactId> <version>${cas.version}</version> </dependency> 012345 <dependency>   ...
CAS认证策略
原文:https://apereo.github.io/cas/4.2.x/installation/Configuring-Authentication-Components.html 认证 CAS的认证过程和下面几个组件有关: PrincipalNameTransformer 把用户输入的id字符串转换为Principal Name,用具体类型的Authentication Handler认证。 AuthenticationManager 认证子系统的入口点,它接收一个或多个凭证和代理认证,传给设置的AuthenticationHandler组件。它收集每次尝试认证的结果和决定安全策略的有效性。 AuthenticationHandler 认证单一的凭证并且报告一个可能的结果: success, failure, not attempted ...
CAS安全指南
原文地址:https://apereo.github.io/cas/4.2.x/planning/Security-Guide.html Security Guide CAS是一个安全软件,它为基于Web的应用提供了基于Web的安全单点登录(SSO)。SSO同时保证了安全和便捷:把密码输入减少到单点,提供可信的凭证中间人来透明地访问多个应用而不需要多次登录。 系统安全 安全传输(https) 所有的交互必需使用安全频道,有两个主要的理由: 认证过程需要进行安全凭证的传输。 CAS的TGT是一个bearer token。 因为这些数据的暴露可能会遭到中间人攻击,所以CAS客户端和服务器传输的安全是极其重要的。 实际上,这 ...
CAS安装要求
原文:https://apereo.github.io/cas/4.2.x/planning/Installation-Requirements.html
安装要求
Java >=1.7
Servlet 容器 >=3.0
Apache Maven >=3.3
熟悉Spring框架
Servlet 容器
CAS没有官方支持的Servlet 容器,但是Apache Tomcat是用的最多的。
Apache Maven
CAS使用Maven构建和部署安装包,也是在安装时强烈建议用来管理依赖的工具。 CAS从根本上是一个紧密集成的软件,(blablabla我实在懒得翻译这堆解释了,总之Maven很NB就对了),所以强烈建议使用Maven。
CAS架构
原文地址:https://apereo.github.io/cas/4.2.x/planning/Architecture.html 架构 CAS 架构图 系统组件 CAS系统架构包含服务器和客户端包括两个部分,他们之间通过各种协议通信。 CAS服务器 CAS服务器端是在Spring框架下用Java写的Servlet,主要职责为通过分发和认证票据(ticket)认证用户和授权访问启用CAS的服务(通常来说叫做CAS客户端)。用户成功登录的话服务器端会发放一个ticket-granting ticket(票据授权凭证,简写TGT,下同),这时一个单点登录(SSO)的会话会被创建。当用户通过浏览器使用TGT当作令牌重定向的时候会拿到一个ser ...