Search in sources :

Example 6 with Bearer

use of org.apereo.portal.soffit.model.v1_0.Bearer in project uPortal by Jasig.

the class BearerService method parseBearerToken.

public Bearer parseBearerToken(String bearerToken) {
    final Jws<Claims> claims = parseEncrypteToken(bearerToken, Bearer.class);
    final String username = claims.getBody().getSubject();
    final Map<String, List<String>> attributes = new HashMap<>();
    for (Map.Entry<String, Object> y : claims.getBody().entrySet()) {
        final String key = y.getKey();
        if (JwtClaims.forName(key) != null) {
            // Skip these;  we handle these differently
            continue;
        }
        if (y.getValue() instanceof List) {
            @SuppressWarnings("unchecked") final List<String> values = (List<String>) y.getValue();
            attributes.put(key, values);
        } else if (y.getValue() instanceof String) {
            // Convert (back) to a single-item list
            final String value = (String) y.getValue();
            attributes.put(key, Collections.singletonList(value));
        }
    }
    @SuppressWarnings("unchecked") final List<String> groups = (List<String>) claims.getBody().get(JwtClaims.GROUPS.getName());
    Bearer rslt = new Bearer(bearerToken, username, attributes, groups);
    logger.debug("Produced the following Bearer for user '{}':  {}", username, rslt);
    return rslt;
}
Also used : Claims(io.jsonwebtoken.Claims) Bearer(org.apereo.portal.soffit.model.v1_0.Bearer)

Aggregations

Bearer (org.apereo.portal.soffit.model.v1_0.Bearer)6 Definition (org.apereo.portal.soffit.model.v1_0.Definition)3 PortalRequest (org.apereo.portal.soffit.model.v1_0.PortalRequest)3 Preferences (org.apereo.portal.soffit.model.v1_0.Preferences)3 Claims (io.jsonwebtoken.Claims)2 Method (java.lang.reflect.Method)2 HttpServletRequest (javax.servlet.http.HttpServletRequest)2 HttpServletResponse (javax.servlet.http.HttpServletResponse)2 Test (org.junit.Test)2 ArrayList (java.util.ArrayList)1 Date (java.util.Date)1 HashMap (java.util.HashMap)1 List (java.util.List)1 PortletSession (javax.portlet.PortletSession)1 Header (org.apache.http.Header)1 BasicHeader (org.apache.http.message.BasicHeader)1 IEntityGroup (org.apereo.portal.groups.IEntityGroup)1 IGroupMember (org.apereo.portal.groups.IGroupMember)1 IPersonAttributes (org.apereo.services.persondir.IPersonAttributes)1 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)1