liferay如何知道cas登录成功和自动登录?

时间:2016-04-16 04:17:09

标签: java liferay

我有一个问题如下:

  1. 假设我已经在Cas服务器上登录成功。
  2. 我打开浏览器并访问liferay。 Liferay不能不自动登录。如果想要登录我必须点击liferay上的按钮登录,liferay将重定向到Cas服务器。 Cas服务器看到用户已登录并发送回liferay。
  3. 谢谢!

1 个答案:

答案 0 :(得分:1)

您必须在 portal-ext.properties

中包含这些行
# CAS Configuration
cas.auth.enabled=true
cas.import.from.ldap=false
cas.login.url=https://localhost:8443/cas-web/login
.logout.url=https://localhost:8443/cas-web/logout
cas.server.name=localhost:8080
cas.server.url=https://localhost:8443/cas-web
#cas.service.url=http://localhost:8080/c/portal/login
cas.logout.on.session.expiration=false
cas.validate.url=https://localhost:8443/cas-web/proxyValidate

auto.login.hooks=com.liferay.portal.security.auth.CASAutoLogin

这些行允许您在localhost和CAS服务器之间重定向。

您必须拥有另一个名为 deployerConfigcontext.xml 的文件。在此文件中,您必须定义注册服务的下一个 bean 列表,以使您的cas服务器转到您的localhost并使用生成的票证

<强>豆:

<bean id="serviceRegistryDao"
  class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl"
  p:registeredServices-ref="registeredServicesList" />

注册服务清单:

<util:list id="registeredServicesList">
    <bean class="org.jasig.cas.services.RegexRegisteredService"
          p:id="1"
          p:name="jason web application"
          p:serviceId="^(https?|imaps?|http?)://.*"
          p:evaluationOrder="0" />
</util:list>

我在 cas.properties 文件中也有几行...也许你也需要它们:

cas.securityContext.serviceProperties.service=http://localhost:8080/cas-web/services/j_acegi_cas_security_check
cas.securityContext.serviceProperties.adminRoles=ROLE_ADMIN     cas.securityContext.casProcessingFilterEntryPoint.loginUrl=http://localhost:8080/cas-web/login
cas.securityContext.ticketValidator.casServerUrlPrefix=http://localhost:8080/cas-web
cas.viewResolver.basename=default_views

文件路径:

  • %CATALINA_HOME%\ web应用\ CAS-幅\ WEB-INF \ cas.properties
  • %CATALINA_HOME%\ web应用\ CAS-幅\ WEB-INF \ deployerConfigContext.xml里
  • %CATALINA_HOME%\ portal-ext.properties