- 浏览: 316581 次
- 性别:
- 来自: 宁波
文章分类
最新评论
-
bqlin1987:
请问是不是ITeye的代码莫名的换行了?
学习SSO-1 Tomcat启用ssl -
a6821122:
在data-config.xml 里的javascript 不 ...
solr导入Oracle日期时间数据的处理 -
jie_kong:
是flexigrid不是flexgrid
FlexGrid自己用的经验 -
zjnbshifox:
呵呵,我也在摸索阶段,谢谢提醒ligywin 写道还需要补充以 ...
CAS自定义Credentials登录 -
ligywin:
还需要补充以下方法import org.apache.comm ...
CAS自定义Credentials登录
服务端的配置
1、在deployerContext.xml中加上attributeRepository
2、配置,这里配置需要从数据库读取的属性,这里参考了这篇http://zxs19861202.iteye.com/blog/890965
3、另外由于我用的是http协议,所以还需要配置serviceRegistryDao,让attributeRepository返回信息
4、最后在/WEB-INF/view/jsp/protocol/2.0/casServiceValidationSuccess.jsp的<cas:user></cas:user>后里加入
下面是服务端的配置,主要是web.xml
获取信息的代码
1、在deployerContext.xml中加上attributeRepository
<bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver"> <property name="attributeRepository" ref="attributeRepository" /> </bean>
2、配置,这里配置需要从数据库读取的属性,这里参考了这篇http://zxs19861202.iteye.com/blog/890965
<bean id="attributeRepository" class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao"> <constructor-arg index="0" ref="dataSource" /> <constructor-arg index="1" value="select id,email,name from t_admin_user where {0} " /> <property name="queryAttributeMapping"> <map> <entry key="username" value="login_name" /> </map> </property> <!-- 要获取的属性在这里配置 --> <property name="resultAttributeMapping"> <map> <entry key="email" value="email" /> <entry key="name" value="name" /> </map> </property> </bean>
3、另外由于我用的是http协议,所以还需要配置serviceRegistryDao,让attributeRepository返回信息
<bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl"> <property name="registeredServices"> <list> <bean class="org.jasig.cas.services.RegexRegisteredService"> <property name="id" value="0" /> <property name="name" value="HTTP" /> <property name="description" value="Only Allows HTTP Urls" /> <property name="serviceId" value="^http://.*" /> <property name="evaluationOrder" value="10000001" /> <property name="ignoreAttributes" value="true" /> </bean> </property> //... </bean>
4、最后在/WEB-INF/view/jsp/protocol/2.0/casServiceValidationSuccess.jsp的<cas:user></cas:user>后里加入
<c:if test="${fn:length(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes) > 0}"> <cas:attributes> <c:forEach var="attr" items="${assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes}" varStatus="loopStatus" begin="0" end="${fn:length(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes)}" step="1"> <cas:attribute> <cas:${fn:escapeXml(attr.key)}>${fn:escapeXml(attr.value)}</cas:${fn:escapeXml(attr.key)}> </cas:attribute> </c:forEach> </cas:attributes> </c:if>
下面是服务端的配置,主要是web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <filter> <filter-name>CAS Authentication Filter</filter-name> <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> <init-param> <param-name>casServerLoginUrl</param-name> <param-value>http://sso.nbrc.com.cn:8080/cas/login</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://localhost:8080</param-value> </init-param> </filter> <filter> <filter-name>CAS Validation Filter</filter-name> <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class> <init-param> <param-name>casServerUrlPrefix</param-name> <param-value>http://sso.nbrc.com.cn:8080/cas</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://localhost:8080</param-value> </init-param> <init-param> <param-name>proxyReceptorUrl</param-name> <param-value>/proxyCallback</param-value> </init-param> <init-param> <param-name>proxyCallbackUrl</param-name> <param-value>http://localhost:8080/client/proxyCallback</param-value> </init-param> </filter> <filter> <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class> </filter> <filter> <filter-name>CAS Assertion Thread Local Filter</filter-name> <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class> </filter> <filter-mapping> <filter-name>CAS Validation Filter</filter-name> <url-pattern>/proxyCallback</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CAS Authentication Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CAS Validation Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CAS Assertion Thread Local Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> </listener> </web-app>
获取信息的代码
<% AttributePrincipal pr = (AttributePrincipal) request.getUserPrincipal(); out.println(pr.getName()); out.println(pr.getAttributes().get("email")); out.println("<hr/>"); out.println(AssertionHolder.getAssertion().getPrincipal().getName()); Map<String,Object> attrs = AssertionHolder.getAssertion().getPrincipal().getAttributes(); for(Map.Entry<String,Object> keyset:attrs.entrySet()){ out.print(keyset.getKey() + ":" + keyset.getValue() + "<br/>"); } %>
发表评论
-
jasper report与Spring mvc整合
2015-10-19 16:02 1655配置jasper view resolver <be ... -
solr导入Oracle日期时间数据的处理
2013-02-08 10:01 5171参考文章: http://stackoverflow.com/ ... -
solr服务端加亮设置
2013-02-06 23:25 1324在${solr.home}/conf/solrconfig.x ... -
Solr客户端自定义开发
2013-02-06 16:52 1693@Service @Qualifier(" ... -
CAS自定义Credentials登录
2013-02-02 00:03 7995先看了这篇文章http://www.blogjava.net/ ... -
Spring data MongoDB DSL
2013-01-29 13:38 2618这两天自己配置了一个通过Spring Data来连接Mongo ... -
Spring MVC和freemarker配置
2013-01-21 13:45 2491参考文章:http://www.cnblogs.com/hoo ... -
我自己的maven环境
2013-01-17 14:37 1114今天把自己的maven环境记录下来,准备重装系统能找到 mav ... -
Spring-data jpa学习
2013-01-17 14:25 1829一个早上加一个中午就耗在这里了啊,就一个小问题,让我吐血不已, ... -
今天学会的DetachedCriteria用法
2013-01-12 22:01 10192以前用hibernate,一般都是使用hql语句的,因为和sq ... -
学习SSO-1 Tomcat启用ssl
2012-11-29 10:41 7002根据网上的http://www.kafeitu.me/sso/ ... -
Solr连接数据库
2012-04-10 09:40 6227要建立自己的全文检索 ... -
Solr试用小记
2012-04-10 09:15 15781、下载tomcat7、solr 3.5.0 以及IKAnal ... -
java生成二维码,qrcode
2012-03-22 15:41 7029通过barcode4j生成 @Controller @R ... -
使用HttpClient 4.1.2调用webservice
2012-01-19 14:22 19294下载httpclient,把压缩包里lib目录的所有jar放到 ... -
Spring MVC3 Hibernate3 Annotation 补充
2011-05-30 11:59 1415通过配置文件进行事务声明 app-config.xml & ... -
Spring MVC3 Hibernate3 Annotation
2011-05-30 11:56 1784web.xml <?xml version=&quo ... -
Tomcat Mod_jk负载均衡Session复制的几点补充
2010-02-24 16:49 1345tomcat和mod_jk进行负载均衡的时候,如果要实现Ses ... -
第一次实际应用Spring MVC
2009-11-17 08:37 1625要做一个简单的投票的东西,看spring mvc的文章已经很久 ... -
我的ant脚本
2009-07-27 15:40 1346<?xml version="1.0&qu ...
相关推荐
IdentityServer4客户端模式(Client Credentials),项目分为身份授权服务、客户端、被访问资源。客户端通过密钥向授权服务器请求AccessToken,客户端携带AccessToken向有身份验证的资源获取数据。
由于登录界面发生改变,请求参数增加了账号所在的系统名称,所以,登录凭据也不能继续使用UsernamePasswordCredentials,而是要自定义一个包含了系统名称的Credentials,并进行配置让CAS服务器启用这个自定义的...
压缩包子文件的文件名“credential”可能指的是凭证(credentials),这是CAS认证过程中的重要概念。凭证可以是用户名和密码、数字证书或其他形式的身份证明,它们用于验证用户身份。在CAS中,处理和验证这些凭证是...
- **bindAndValidate**: 收集用户在登录页面输入的信息,并封装成 CAS 内部的 `Credentials` 对象。 - **submit**: 调用 `centralAuthenticationService` 的 `grantServiceTicket` 方法来完成认证工作。如果认证成功...
该资源提供了一个完整的Java代码示例,用于实现NetSuite OAuth 2.0客户端凭证模式(Client Credentials),完整过程请阅读我的博客
这时,如果使用过如Foxmail这样的...总的来说,获取邮箱密码需要对计算机存储和邮件客户端的工作原理有一定了解,同时也需要注意隐私和安全问题。在没有专业知识的情况下,最安全的方式往往是直接联系邮箱服务提供商。
credentials-java-0.2.4.jar
CASServer负责完成对用户的认证工作,CASServer需要独立部署,CASServer处理用户名/密码等凭证(Credentials)验证,它可能会到数据库检索一条用户帐号信息,也可能在XML文件中检索用户密码,CAS均提供一种灵活但统一...
- **配置CAS客户端**:首先,需要在AceGI的配置中添加对CAS的支持,这通常涉及到在`applicationContext-security.xml`文件中引入CAS的客户端组件,并配置CAS服务器的URL、服务验证URL等。 - **处理服务验证**:当...
- **Token Endpoint**:客户端通过此接口获取访问令牌。 - **Resource Owner Password Credentials Grant**:一种授权类型,允许用户直接提供用户名和密码来获取令牌。 - **Authorization Code Grant**:另一种常见...
Credentials Plugin version:1.11 download from github,and have build it by: Run mvn clean package to create the plugin .hpi file. To install: 1. copy the resulting ./target/credentials.hpi file ...
- 通过FtpWebResponse的StatusDescription属性,可以获取FTP服务器返回的状态信息,帮助调试和理解FTP会话过程。 在给定的文件"**FtpClient**"中,很可能是包含了完整的FTP客户端实现源代码,包括以上提到的各个...
C#的`FtpWebRequest`类可以获取目录列表,通过`GetResponse()`方法获取`FtpWebResponse`,再通过`GetResponseStream()`读取目录信息。 6. **处理中文欢迎词**:描述中提到的“有中文欢迎词时的FTP处理”可能是指在...
以及授权码(Authorization Code)、隐式(Implicit)、密码(Resource Owner Password Credentials)和客户端凭据(Client Credentials)四种授权流程。接下来,我们将详细探讨Java环境下如何实现OAuth 2.0服务端和...
换句话说,如果你的项目使用OWIN实现OAuth 2.0 之客户端模式,但是没有配置machineKey,也没有在认证服务中自定义认证。那么我就可以利用OWIN实现OAuth 2.0 之客户端模式的基本原理生成一个token,你会发现我这个...
在Java中,客户端通常需要实现OAuth2的四个授权模式:授权码模式(Authorization Code Grant)、隐式模式(Implicit Grant)、客户端凭据模式(Client Credentials Grant)和刷新令牌模式(Refresh Token Grant)。...
2. **PASV模式**:在发送任何数据命令之前,客户端需要通过发送PASV命令获取服务器的数据连接端口号。FtpWebRequest的UsePassive属性用于启用PASV模式。 3. **文件操作**:客户端通过调用FtpWebRequest的...
2. 初始化`SmtpClient`,配置服务器信息,并使用`UseDefaultCredentials`或`Credentials`属性设置认证信息。 3. 调用`SmtpClient.Send`发送邮件。 4. 对于POP3部分,创建`Pop3Client`,设置服务器信息并登录。 5. ...
5. 用户信息端点(User Info Endpoint):在客户端获取访问令牌后,可以通过这个端点获取用户信息。 客户端则负责与用户交互,获取授权码或用户凭据,并向服务端请求令牌。实现过程中,客户端可能需要创建以下组件...
本项目“c# 邮件客户端Email_Client”是利用C#语言实现的一个邮件客户端程序,它允许用户收发电子邮件,是理解C#与网络通信交互的重要示例。 在构建邮件客户端时,主要涉及以下核心知识点: 1. **SMTP(Simple ...