Hi,
Yeah I also agree that some part of the doc is still not written in depth.

I actually need to understand some of the attributes by reading the source 
code of cas.

- Andy

On Monday, 18 September 2017 15:59:59 UTC+8, SebastianU wrote:
>
> Hi!
>
> thanks for the link!
>
> Got it to work with a little trying.
>
> First I got confused because the field and attributes names in this 
> tutorial are the same...
> Lack of documentation on cas attributes... 
>
>
> Sebastian
>
> Am Freitag, 15. September 2017 10:50:19 UTC+2 schrieb Andy Ng:
>>
>> Hi Sebastian,
>>
>> From dev of CAS, here's is an tutorial on how to set up jdbc in CAS 
>> 5.1.x: https://apereo.github.io/2017/02/22/cas51-dbauthn-tutorial/
>>
>> Just for more reference, here is my settings:
>> cas.authn.jdbc.query[0].sql=SELECT * FROM test_users WHERE uid=?
>> cas.authn.jdbc.query[0].url=jdbc:mysql://mysql.yoursite.com/test
>> cas.authn.jdbc.query[0].dialect=org.hibernate.dialect.MySQLDialect
>> cas.authn.jdbc.query[0].user=test
>> cas.authn.jdbc.query[0].password=testdb
>> cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
>> cas.authn.jdbc.query[0].fieldPassword=psw
>>
>> I can see that the main different between me and you is that you are 
>> using *{0}* and I am using *?* as the input value, maybe that's the 
>> problem? Or you take a step back and try the tutorial, make an working jdbc 
>> connection, then resume to making your own connection works again.
>>
>> Hope this is helpful to you!
>> - Andy
>>
>>
>> On Friday, 15 September 2017 16:10:49 UTC+8, SebastianU wrote:
>>>
>>> Hello,
>>>
>>> I'stuck by migrating the cas configuration from 4.x version to 5.1.
>>>
>>> In 4.x I got the following configuration for the attributes:
>>>
>>>   <bean id="primaryPrincipalResolver"
>>>     
>>> class="org.jasig.cas.authentication.principal.PersonDirectoryPrincipalResolver">
>>>     <property name="attributeRepository" ref="attributeRepository"/>
>>>   </bean>
>>>
>>>   <bean id="attributeRepository"
>>>     
>>> class="org.jasig.services.persondir.support.jdbc.MultiRowJdbcPersonAttributeDao">
>>>     <constructor-arg index="0" ref="dataSource"/>
>>>     <constructor-arg index="1"
>>>       value="SELECT 'USER_ROLE' as role_name, FUNCTION as ROLENAME FROM 
>>> FUNCTIONS WHERE  {0}"/>
>>>     <property name="queryAttributeMapping">
>>>       <map>
>>>         <entry key="username" value="ID"/>
>>>       </map>
>>>     </property>
>>>     <property name="nameValueColumnMappings">
>>>       <map>
>>>         <entry key="role_name" value="ROLENAME"/>
>>>       </map>
>>>     </property>
>>>   </bean>
>>>
>>>   <bean id="serviceRegistryDao" 
>>> class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl"
>>>     p:registeredServices-ref="registeredServicesList"/>
>>>
>>>   <util:list id="registeredServicesList">
>>>     <bean class="org.jasig.cas.services.RegisteredServiceImpl">
>>>       <property name="id" value="0"/>
>>>       <property name="name" value="HTTPS Services"/>
>>>       <property name="description" value="YOUR HTTP Service"/>
>>>       <property name="serviceId" value="https://**"/>
>>>       <property name="allowedAttributes">
>>>         <list>
>>>           <value>USER_ROLE</value>
>>>         </list>
>>>       </property>
>>>     </bean>
>>>   </util:list>
>>>
>>>
>>> Now I'm trying to configure CAS 5.1 to use the same functionality and 
>>> I'm stuck...
>>>
>>> Log:
>>> DEBUG 
>>> [org.apereo.services.persondir.support.jdbc.MultiRowJdbcPersonAttributeDao] 
>>> (default task-19) Executed 'SELECT  'USER_ROLE' as role_name, FUNCTION  as 
>>> ROLENAME FROM FUNCTIONS  WHERE {0}' with arguments [casuser] and got 
>>> results [{ID=casuser, ROLE_NAME=USER_ROLE, ROLENAME=EDITOR}, {ID=casuser, 
>>> ROLE_NAME=USER_ROLE, ROLENAME=VIEWER}]
>>> 2017-09-14 18:29:24,391 DEBUG 
>>> [org.apereo.services.persondir.support.MergingPersonAttributeDaoImpl] 
>>> (default task-19) Retrieved 
>>> attributes='[NamedPersonImpl[name=CASUSER,attributes={}]]' for 
>>> query='{username=[casuser]}', isFirstQuery=false, 
>>> currentlyConsidering='org.apereo.services.persondir.support.jdbc.MultiRowJdbcPersonAttributeDao@7698881',
>>>  
>>> resultAttributes='null'
>>> DEBUG 
>>> [org.apereo.services.persondir.support.MergingPersonAttributeDaoImpl] 
>>> (default task-19) Aggregated search results 
>>> '[NamedPersonImpl[name=CASUSER,attributes={}]]' for 
>>> query='{username=[casuser]}'
>>> DEBUG 
>>> [org.apereo.services.persondir.support.CachingPersonAttributeDaoImpl] 
>>> (default task-19) Retrieved query from wrapped IPersonAttributeDao and 
>>> stored in cache for scopedTarget.attributeRepository. 
>>> key='-265766846|-265796123', 
>>> results='[NamedPersonImpl[name=CASUSER,attributes={}]]'
>>> DEBUG 
>>> [org.apereo.services.persondir.support.CachingPersonAttributeDaoImpl.statistics]
>>>  
>>> (default task-19) Cache Stats scopedTarget.attributeRepository: queries=1, 
>>> hits=0, *misses=1*
>>> DEBUG 
>>> [org.apereo.cas.authentication.principal.resolvers.PersonDirectoryPrincipalResolver]
>>>  
>>> (default task-19) *Principal id [casuser] did not specify any 
>>> attributes*
>>> DEBUG 
>>> [org.apereo.cas.authentication.principal.resolvers.PersonDirectoryPrincipalResolver]
>>>  
>>> (default task-19) *Returning the principal with id [casuser] without 
>>> any attributes*
>>>
>>> My configuration cas.properties is:
>>> # config Authentication Attributes
>>> cas.authn.attributeRepository.expireInMinutes=30
>>> cas.authn.attributeRepository.maximumCacheSize=10000
>>> cas.authn.attributeRepository.merger=MERGE
>>>
>>> cas.authn.attributeRepository.jdbc[0].attributes.uid=ROLENAME
>>>
>>> cas.authn.attributeRepository.jdbc[0].singleRow=false
>>> cas.authn.attributeRepository.jdbc[0].order=0
>>> cas.authn.attributeRepository.jdbc[0].requireAllAttributes=true
>>> cas.authn.attributeRepository.jdbc[0].caseCanonicalization=UPPER
>>> # cas.authn.attributeRepository.jdbc[0].queryType=OR|AND
>>>
>>> # Used only when there is a mapping of many rows to one user
>>> cas.authn.attributeRepository.jdbc[0].columnMappings.role_name=ROLENAME
>>> # 
>>> cas.authn.attributeRepository.jdbc[0].columnMappings.columnAttrName2=columnAttrValue2
>>> # 
>>> cas.authn.attributeRepository.jdbc[0].columnMappings.columnAttrName3=columnAttrValue3
>>> cas.authn.attributeRepository.jdbc[0].sql=SELECT  'USER_ROLE' as 
>>> role_name, FUNCTION  as ROLENAME FROM FUNCTIONS  WHERE {0}
>>> cas.authn.attributeRepository.jdbc[0].username=ID
>>> cas.authn.attributeRepository.jdbc[0].isolateInternalQueries=false
>>> cas.authn.attributeRepository.jdbc[0].failFast=true
>>>
>>> cas.authn.attributeRepository.jdbc[0].isolationLevelName=ISOLATION_READ_COMMITTED
>>> cas.authn.attributeRepository.jdbc[0].leakThreshold=10
>>>
>>> cas.authn.attributeRepository.jdbc[0].propagationBehaviorName=PROPAGATION_REQUIRED
>>> cas.authn.attributeRepository.jdbc[0].batchSize=1
>>> cas.authn.attributeRepository.jdbc[0].autocommit=false
>>> cas.authn.attributeRepository.jdbc[0].idleTimeout=5000
>>> cas.authn.attributeRepository.jdbc[0].pool.suspension=false
>>> cas.authn.attributeRepository.jdbc[0].pool.minSize=6
>>> cas.authn.attributeRepository.jdbc[0].pool.maxSize=18
>>> cas.authn.attributeRepository.jdbc[0].pool.maxWait=2000
>>>
>>> cas.authn.attributeRepository.defaultAttributesToRelease=USER_ROLE,role_name
>>>
>>> What am I missing?
>>>
>>>
>>> Help appreciated!
>>>
>>> Sebastian
>>>
>>

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
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 cas-user+unsubscr...@apereo.org.
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/b87f76e1-c965-4a94-9602-a8c157ea5cc0%40apereo.org.

Reply via email to