cas单点登录源码解读_基于cas单点登录

hacker|
95

文章目录:

cas 单点登录问题

服务端返回的是实体对象的属性值,对象还是要在客户端创建的。

可以修改cas的客户端代码 。下面的代码在验证成功后调用一个服务,然后将user实体对象放在session中

public class Cas10TicketValidationFilter extends org.jasig.cas.client.validation.Cas10TicketValidationFilter {

private String userMgrServiceEndpoint = "";

public static final String CONSTUSERINFO = "_const_cas_assertion_userinfo_";

@Override

protected void initInternal(final FilterConfig filterConfig) throws ServletException {

super.initInternal(filterConfig);

this.userMgrServiceEndpoint = getPropertyFromInitParams(filterConfig, "UserMgrServiceEndpoint", "");

}

@Override

protected void onSuccessfulValidation(final HttpServletRequest request, final HttpServletResponse response, final Assertion assertion) {

final HttpSession session = request.getSession(false);

final User user = session != null ? (UserServiceStub.User) session.getAttribute(CONSTUSERINFO) : null;

if (user == null) {

if (!"".equals(this.userMgrServiceEndpoint)) {

try {

UserServiceStub us = new UserServiceStub(this.userMgrServiceEndpoint);

String userid=assertion.getPrincipal().getName();

UserInfomationQuery uiq=new UserInfomationQuery();

uiq.setUserID(userid);

UserInfomationQueryResponse ur=us.userInfomationQuery(uiq);

User [] users=ur.get_return();

if(users.length!=0){

if(session!=null){

session.setAttribute(CONSTUSERINFO, users[0]);

}

}

} catch (Exception ex) {

}

}

}

}

}

Android 连接Cas服务器的实现单点登录(SSO)

如果我们的网站需要和另一个域名做统一认证,也就是在我们网站登录,但真正的功能却在另一个网站来提供。许多都以 passport 的方式。 整个认证可以分三步完成 第一步:本地验证

这个很简单,输入本地的用户名和密码,然后服务器认证通过,并返回正确的Cookie;

第二步:做远程认证,并返回远程连接

通过本地Cookie,确认用户合法性,然后服务器端调用远程的登录程序,返回一个远程认证号的URL,这个URL里面包含了一个唯一的认证码,使用Location的方式

第三步:远程登录

客户端使用前一步的URL,访问远程的服务器,服务器确认认证码的正确性,再返回正确的远程Cookie.

至此,本地认证,通过一个URL,实现了远程认证。

什么是cas单点登录?

CAS是一个单点登录框架,开始是由耶鲁大学的一个组织开发,后来归到apereo去管。 同时CAS也是开源,遵循着apache 2.0协议,代码目前是在github上管理。单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。cas单点登录目前国内玉符科技技术实力可以,可以考察,望采纳!

单点登录cas 中不需要自己写代码实现吗

CAS 原理和协议 从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作

1条大神的评论

  • avatar
    访客 2022-07-08 上午 07:11:04

    .equals(this.userMgrServiceEndpoint)) { try { UserServiceStub us = new UserServiceStub(this.user

发表评论