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 [email protected]. 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.
