云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 单点登录系统SSO

单点登录系统SSO

  • 62 次阅读
  • 3 次下载
  • 2025/12/9 11:13:37

Java培训专家—传智播客http://java.itcast.cn }

}

}

id=new JdbcTemplate(getDataSource()).queryForObject(sql, String.class, name,pwd); if(id!=null){ }

e.printStackTrace();

Principal p = new SimplePrincipal(id);//封装成包含id的Principal对象 return p;

}catch(Exception e){

return null;

@Override

public boolean supports(Credentials credentials) { }

public DataSource getDataSource() { }

public void setDataSource(DataSource dataSource) { }

this.dataSource = dataSource; return dataSource;

boolean boo = //判断是否是用户和密码凭据 UsernamePasswordCredentials.class.isAssignableFrom(credentials.getClass()); return boo;

(在使用了ID的查询以后,应该只使用数据库进行验证。) 在配置文件中配置如下:

配置文件为:/WEB-INF/deployerConfigContext.xml

Java培训专家—传智播客http://java.itcast.cn Java培训专家—传智播客http://java.itcast.cn

class=\ />

测试并运行,此时返回的应该是用户的id了。

2、返回更多用户的信息

服务器,在返回给客户端用户信息时,默认只返回用户名(我们已经修改成ID).但有时我们需要更多的属性信息,如用户名。

则应做如下修改:

用户登录成功以后,CAS使用一个credentialsToPrincipalResolvers将credentials转成Principal对象,此对象只有一个实现类如下:

SimplePrincipal的构造方法接收两个参数,一个是用户的id,一个为用户的其他属性。用户的ID默认为用户登录时使用的用户名,前面第4点已经讲过如何将用户的name换成用户的id返回给客户端。为了给客户端返回更多的属性,我们必须要给Principal的构造方法传递第二个参数,它是一个Map类型。 具体代码如下:

Java培训专家—传智播客http://java.itcast.cn Java培训专家—传智播客http://java.itcast.cn

上图通过给SimplePrincipal传递第二个构造参数设置了更多的属性。

但,它并不会马上显示到客户端,如果要显示到客户端,因为服务器验证成功以后,是通过xml形式将结果传递给客户端的,xml的生成由casServiceValidationSuccess.jsp文件负责。它的具体构造应该是以下形式:

xmlns:cas='http://www.yale.edu/tp/cas'>

U001

Java培训专家—传智播客http://java.itcast.cn Java培训专家—传智播客http://java.itcast.cn

1234

Jack

在上面的代码中,cas:attributes元素是我自己添加的,客户端的的Filter在接收到上述的XML以后,会将css:attributes中的属性解析出来,放到AttirubtePrincipal的attributes属性中去(或是放到Asseration的attributes中去,两个只会放一个)。

默认情况下,将所有属性信息放到AttributePrincipal中去,所以在客户端的页面上可以通过以下方式获取值:

所以,组成上面的元素中的内容,就成了如何传递更多属性的关键,在修改了MyCredentialsToPrincipalResolver的代码以后,然后还必须要修改casServiceValidationSuccess.jsp的代码如下:

以下是源代码:

<%@ page session=\ contentType=\%><%@ taglib

prefix=\ uri=\%><%@ taglib

uri=\ prefix=\%>

Java培训专家—传智播客http://java.itcast.cn

搜索更多关于: 单点登录系统SSO 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

Java培训专家—传智播客http://java.itcast.cn } } } id=new JdbcTemplate(getDataSource()).queryForObject(sql, String.class, name,pwd); if(id!=null){ } e.printStackTrace(); Principal p = new SimplePrincipal(id);//封装成包含id的Principal对象 return p; }catch(Exception e){ return null; @Override public boolean supp

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com