Hi,

In pac4j, user profiles are available via the CommonProfile class and in
that case, from the Google2Profile which has a specific logic to get the
emails: https://github.com/pac4j/pac4j/blob/master/pac4j-
oauth/src/main/java/org/pac4j/oauth/profile/google2/Google2Profile.java#L22

We can easily add a toString to the Google2Email object. Can't you get the
emails attribute and extract the first email if it exists?

Thanks.
Best regards,
Jérôme


On Thu, Oct 19, 2017 at 8:33 PM, Carlos M. Fernández <
[email protected]> wrote:

> Hello,
>
> I'm setting up an instance of CAS 5.1.5 that delegates authentication to
> Google. I currently have it working more or less as intended in my
> development sandbox, however I've hit one issue that I have yet to work
> around.
>
> Google returns a very big integer as the user ID, so I'd like to grab the
> email address from an attribute instead. However!, instead of an email
> address or a list of addresses, PAC4J seems to populate the emails
> attribute with an object ref. The logs show messages like the one below,
> and the attribute is passed as shown in the logs to the application:
>
> 2017-10-19 13:57:00,165 INFO [org.apereo.cas.authentication
> .AbstractAuthenticationManager] - <Authenticated principal
> [115266970958975232474] with attributes [{access_token=ya29.Glseemingl
> yrandomstringn2p6E-Mh2iNanotherverylongpieceofstringG5h9QK_DDPb01xtM8RQg,
> displayName=Carlos M. Fernández, emails=[org.pac4j.oauth.profil
> e.google2.Google2Email@7e40686c], gender=MALE, image.url=
> https://lh6.googleusercontent.com/-IPbS/very/long/
> url/to/the/photo.jpg?sz=50, language=en, name.familyName=Fernández,
> name.givenName=Carlos M., url=https://plus.google.com/+googleplusurl}]
> via credentials [[org.apereo.cas.authenticatio
> n.principal.ClientCredential@48ad0f08[id=115975669723242095874]]].>
>
> It seems that this Google2Email object
> <https://github.com/pac4j/pac4j/blob/master/pac4j-oauth/src/main/java/org/pac4j/oauth/profile/google2/Google2Email.java>
> contains the email address that I want to retrieve, however the class
> doesn't implement toString(). Is this perhaps a bug in the CAS PAC4J
> support code? Could I perhaps extract it through a Groovy script in the
> service definition?
>
> TIA,
> --
> Carlos
>
> --
> - 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/ap
> ereo.org/d/msgid/cas-user/830989b8-1050-4468-b4de-66dfc6939b
> 2e%40apereo.org
> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/830989b8-1050-4468-b4de-66dfc6939b2e%40apereo.org?utm_medium=email&utm_source=footer>
> .
>

-- 
- 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/CAP279LyGDXNapAkBKgG8cySYW-%2BVjC%2B_pkSq3Z5WGSH3Hmy7Bw%40mail.gmail.com.

Reply via email to