这里是黄永亮的博客

标签 服务器 下的文章

apache反向代理tomcat获取用户真实IP

校内CAS单点登录的审计日志中,用户的IP地址一直是服务器地址。这个问题拖了好久,今天终于解决了。 通过追查日志的来源,发现是自己实现了一个appender配置在了log4j中。 从这个类入手开始追查代码,最终发现IP的来源是通过request.getRemoteAddr这个方法来获得的。 而这个方法是来源于tomcat自身的servlet-api提供,返回的向tomcat发起请求的客户端IP。 但是一般情况下tomcat都会用nginx或apache代理tomcat,所以这个方法得到的IP就是服务器自身的IP而不是真实的远程IP了 而我又不想更改CAS的源码重新部署,所以只能想办法更改tomca ...

WordPress 邮件链接bug 修复

今天在做cc.iv6.cc的中央认证时候发现很多人注册之后系统都会给我发送一个密码已经重置的链接,感觉不对劲。 于是自己走了一遍注册流程,发现邮件中设置密码的链接有问题。 新版wordpress发送的用户注册邮件链接直接点击后无法设置新密码,提示“您的密码重设链接无效” 因为代码里加的那个括号被邮件识别成了URL的一部分,所以点击无效。 跟踪代码,解决方案如下(懒得写插件了,直接改源码=-=): 修改方式如下,文件wp-login.php中寻找这部分 PHP 01234567 &n ...

CAS认证之数据库认证

原文:https://apereo.github.io/cas/4.2.x/installation/Database-Authentication.html Database Authentication 当使用Maven WAR overlay部署的时候,数据库认证组件通过增加下面内容启用: XHTML 012345  <dependency>    <groupId>org.jasig.cas</groupId>    <artifactId>cas-server-support-jdbc</artifactId>    <version>${cas.version}& ...

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 ...