Study 
https://jasig.github.io/cas/4.2.x/installation/Configuring-Principal-Resolution.html



From: [email protected] [mailto:[email protected]] On Behalf Of Yunqiang 
Su
Sent: Tuesday, January 12, 2016 12:34 AM
To: CAS Community <[email protected]>
Subject: [cas-user] Cas 4.2 RC1 attributes get problem



I download and built cas 4.2 rc1, and modify some files.
It can be used to authorize while I cannot get other attribute.

As catalina.out said,
ldapAuthenticationHandler can get these attributes, while
on phpCAS, I get something like this:


array(6) {
  ["accountStatus"]=&gt;
  string(13) "accountStatus"
  ["name"]=&gt;
  string(4) "name"
  ["authenticationDate"]=&gt;
  string(29) "2016-01-12T14:23:02.032+08:00"
  ["isFromNewLogin"]=&gt;
  string(4) "true"
  ["longTermAuthenticationRequestTokenUsed"]=&gt;
  string(5) "false"
  ["unitId"]=&gt;
  string(6) "unitId"
}


I think that the problem is caused by mis-configuration: 
attributeRepository.
Any idea how to configure it?

deployerConfigContext.xml

<beans xmlns="http://www.springframework.org/schema/beans";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xmlns:ldaptive="http://www.ldaptive.org/schema/spring-ext";
       xmlns:context="http://www.springframework.org/schema/context";
       xmlns:p="http://www.springframework.org/schema/p";
       xmlns:c="http://www.springframework.org/schema/c";
       xmlns:aop="http://www.springframework.org/schema/aop";
       xmlns:tx="http://www.springframework.org/schema/tx";
       xmlns:util="http://www.springframework.org/schema/util";
       xmlns:sec="http://www.springframework.org/schema/security";
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/aop 
http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/security 
http://www.springframework.org/schema/security/spring-security.xsd
       http://www.ldaptive.org/schema/spring-ext 
http://www.ldaptive.org/schema/spring-ext.xsd
       http://www.springframework.org/schema/util 
http://www.springframework.org/schema/util/spring-util.xsd";>

<!-- auth with 
http://jasig.github.io/cas/development/installation/LDAP-Authentication.html
       LDAP Requiring Authenticated Search
-->
    <bean id="ldapAuthenticationHandler"
    class="org.jasig.cas.authentication.LdapAuthenticationHandler"
          p:principalIdAttribute="uid"
          c:authenticator-ref="authenticator">
        <property name="principalAttributeMap">
        <map>
            <entry key="name" value="name" />
            <entry key="accountStatus" value="accountStatus" />
            <entry key="unitId" value="unitId" />
        </map>
        </property>
    </bean>

    <ldaptive:bind-search-authenticator id="authenticator"
        ldapUrl="${ldap.url}"
        baseDn="${ldap.baseDn}"
        userFilter="${ldap.searchFilter}"
        bindDn="${ldap.managerDn}"
        bindCredential="${ldap.managerPassword}"
        connectTimeout="${ldap.connectTimeout}"
        useStartTLS="${ldap.useStartTLS}"
        blockWaitTime="${ldap.pool.blockWaitTime}"
        maxPoolSize="${ldap.pool.maxSize}"
        allowMultipleDns="${ldap.allowMultipleDns:false}"
        usePasswordPolicy="${ldap.usePpolicy:false}"
        minPoolSize="${ldap.pool.minSize}"
        validateOnCheckOut="${ldap.pool.validateOnCheckout}"
        validatePeriodically="${ldap.pool.validatePeriodically}"
        validatePeriod="${ldap.pool.validatePeriod}"
        idleTime="${ldap.pool.idleTime}"
        prunePeriod="${ldap.pool.prunePeriod}"
        failFastInitialize="true"
        subtreeSearch="${ldap.subtree.search:true}"
        useSSL="${ldap.use.ssl:false}"
    />

    <util:map id="authenticationHandlersResolvers">
        <entry key-ref="proxyAuthenticationHandler" 
value-ref="proxyPrincipalResolver" />
        <entry key-ref="primaryAuthenticationHandler" 
value-ref="primaryPrincipalResolver" />
    </util:map>
    <util:list id="authenticationMetadataPopulators" />

<!-- for attributions -->
    <bean id="attributeRepository" 
class="org.jasig.services.persondir.support.NamedStubPersonAttributeDao"
          p:backingMap-ref="attrRepoBackingMap" />
    <util:map id="attrRepoBackingMap">
        <entry key="name" value="name" />
        <entry key="unitId" value="unitId" />
        <entry key="accountStatus" value="accountStatus" />
    </util:map>

    <alias name="ldapAuthenticationHandler" 
alias="primaryAuthenticationHandler" />
    <alias name="personDirectoryPrincipalResolver" 
alias="primaryPrincipalResolver" />

    <alias name="serviceThemeResolver" alias="themeResolver" />

    <alias name="jsonServiceRegistryDao" alias="serviceRegistryDao" />

    <alias name="defaultTicketRegistry" alias="ticketRegistry" />

    <alias name="ticketGrantingTicketExpirationPolicy" 
alias="grantingTicketExpirationPolicy" />
    <alias name="multiTimeUseOrTimeoutExpirationPolicy" 
alias="serviceTicketExpirationPolicy" />

    <alias name="anyAuthenticationPolicy" alias="authenticationPolicy" />
    <alias name="acceptAnyAuthenticationPolicyFactory" 
alias="authenticationPolicyFactory" />

    <bean id="auditTrailManager"
          class="org.jasig.inspektr.audit.support.Slf4jLoggingAuditTrailManager"
          p:entrySeparator="${cas.audit.singleline.separator:|}"
          p:useSingleLine="${cas.audit.singleline:false}"/>

    <alias name="neverThrottle" alias="authenticationThrottle" />

    <util:list id="monitorsList">
        <ref bean="memoryMonitor" />
        <ref bean="sessionMonitor" />
    </util:list>

    <alias name="defaultPrincipalFactory" alias="principalFactory" />
    <alias name="defaultAuthenticationTransactionManager" 
alias="authenticationTransactionManager" />
    <alias name="defaultPrincipalElectionStrategy" 
alias="principalElectionStrategy" />

</beans>


for HTTPSandIMAPS-10000001.json,
{
  "@class" : "org.jasig.cas.services.RegexRegisteredService",
  "serviceId" : "^(https|imaps|http)://.*",       /*add http*/
  "name" : "HTTPS and IMAPS",
  "id" : 10000001,
  "description" : "This service definition authorized all application urls 
that support HTTPS and IMAPS protocols.",
  "proxyPolicy" : {
    "@class" : "org.jasig.cas.services.RefuseRegisteredServiceProxyPolicy"
  },
  "evaluationOrder" : 10000,
  "usernameAttributeProvider" : {
    "@class" : 
"org.jasig.cas.services.DefaultRegisteredServiceUsernameProvider"
  },
  "logoutType" : "BACK_CHANNEL",
  "attributeReleasePolicy" : {
    "@class" : "org.jasig.cas.services.ReturnAllowedAttributeReleasePolicy",
    "allowedAttributes" : [ "java.util.ArrayList", [ "name", "unitId", 
"accountStatus" ] ],    /*allow some attribution.*/
    "principalAttributesRepository" : {
      "@class" : 
"org.jasig.cas.authentication.principal.DefaultPrincipalAttributesRepository"
    },
    "authorizedToReleaseCredentialPassword" : false,
    "authorizedToReleaseProxyGrantingTicket" : false
  },
  "accessStrategy" : {
    "@class" : 
"org.jasig.cas.services.DefaultRegisteredServiceAccessStrategy",
    "enabled" : true,
    "ssoEnabled" : true
  }
}

-- 
You received this message because you are subscribed to the Google Groups 
"CAS Community" group.
To unsubscribe from this group and stop receiving emails from it, send an 
email to [email protected] 
<mailto:[email protected]> .
Visit this group at https://groups.google.com/a/apereo.org/group/cas-user/.

-- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
Visit this group at https://groups.google.com/a/apereo.org/group/cas-user/.

Reply via email to