Thanks Misagh Moayyed for your answer. Aggregates work well for my 
purposes. Hopefully someone else will find a solution for Jonathan Luthi.

On Friday, 26 June 2015 14:14:51 UTC-4, Misagh Moayyed wrote:
>
> Don’t know if you can do this in on query, but you can write an aggregate 
> that collects results from two and merges the results all back into one 
> collection. 
>
> See https://github.com/Jasig/person-directory#attribute-aggregation 
>
>  
>
> *From:* Michael Overmeyer [mailto:[email protected] <javascript:>] 
> *Sent:* Friday, June 26, 2015 8:16 AM
> *To:* [email protected] <javascript:>
> *Cc:* [email protected] <javascript:>
> *Subject:* Re:[cas-user] Cas 4 - sql authentication with username or 
> email and retrieve person attribute
>
>  
>
> I have also hit this problem, albeit for a slightly different query. I 
> wish to use the username in my query in multiple places. For example, part 
> of my results are generated from a subquery:
>
>  
>
> SELECT attribute1, attribute2, attribute3, array(SELECT attribute4 FROM 
> table2 t2 WHERE {0}) FROM table1 t1 WHERE {0};
>
>  
>
> At first I tried
>
>  
>
> <property name="queryAttributeMapping">
>
>   <map>
>
>        <entry key="username" value="username" />
>
>        <entry key="username" value="username" />
>
>   </map>
>
> </property>
>
>  
>
>  
>
> But of course this is a map ("duh"), so the second value replaces the 
> first. The good news is that (In my case, because the column names are the 
> same) it generates the correct SQL
>
>  
>
> SELECT attribute1, attribute2, attribute3, array(SELECT attribute4 FROM 
> table2 t2 WHERE username = ?) FROM table1 t1 WHERE username = ?;
>
>  
>
> but when it actually executes the SQL, it only has one entry in the map, 
> so it only adds the username value once and the database complains that it 
> doesn't have a value for the second parameter.
>
>  
>
> I'm not sure what the best way to work around this is. My current plan is 
> to attempt to modify the source to do something like add a duplicate 
> username parameter to the "seed map" for the user so I can do things like
>
>  
>
> <property name="queryAttributeMapping">
>
>   <map>
>
>        <entry key="username" value="username" />
>
>        <entry key="username2" value="username" />
>
>   </map>
>
> </property>
>
>  
>
> But this is hacky and would result in code that is specific to my 
> installation and schema. Please let me know if there is a better way that I 
> could adopt to work around this problem.
>
>
> On Thursday, 9 October 2014 09:43:46 UTC-4, Jonathan Luthi wrote:
>
> Hi,
>
>  
>
> I'm trying to configure my CAS Server 4 to allow users to authenticate 
> with username *or *email within a mysql database (using JDBC). So, in my 
> *primaryAuthenticationHandler *I set the sql like this:
>
>  
>
> SELECT password FROM users WHERE LOWER(?) IN (LOWER(username), LOWER(email
> )) AND NOT deleted
>
>
> It works, but my problem is that I'm using a *SingleRowJdbcPersonAttributeDao 
> *to retrieve user attributes. Something like this:
>
>  
>
> ...
>
> <constructor-arg index="1" value="SELECT ... FROM users WHERE {0}" />
>
> <property name="queryAttributeMapping">
>
>     <map>
>
>    <entry key="username" value="email" />
>
>     </map>
>
> </property>
> ...
>
>
> Attributes are retrieved only when user log in with email (because query 
> is translated as email=*username*).
>
> So, I wonder if it's possible to have a query like this "...email=
> *username* OR username=*username*".
>
>  
>
> I really want to have login possible by username or email on my website.
>
>  
>
> Best regards,
>
> Jonathan
>
>  
>
>  
>
> -- 
>
> You are currently subscribed to [email protected] <javascript:> as: 
> [email protected] <javascript:>
>
> To unsubscribe, change settings or access archives, see 
> http://www.ja-sig.org/wiki/display/JSG/cas-user
>
> -- 
> You are currently subscribed to [email protected] <javascript:> as: 
> [email protected] <javascript:>
> To unsubscribe, change settings or access archives, see 
> http://www.ja-sig.org/wiki/display/JSG/cas-user
>
>
-- 
You are currently subscribed to [email protected] as: 
[email protected]
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user

Reply via email to