Skip to content

Commit

Permalink
clean up log config; ensure ATs can be encoded correctly
Browse files Browse the repository at this point in the history
  • Loading branch information
mmoayyed committed Sep 18, 2019
1 parent 99d27a4 commit 372cb0d
Show file tree
Hide file tree
Showing 66 changed files with 238 additions and 525 deletions.
9 changes: 0 additions & 9 deletions api/cas-server-core-api-events/src/test/resources/log4j2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,6 @@
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{%d %p [%c] - &lt;%m&gt;%n}" />
</Console>
<RollingFile name="file" fileName="build/events.log" append="true"
filePattern="events-%d{yyyy-MM-dd-HH}-%i.log.gz">
<PatternLayout pattern="%highlight{%d %p [%c] - %m%n}" />
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="org.apereo" level="off" additivity="false">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,6 @@
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{%d %p [%c] - &lt;%m&gt;%n}" />
</Console>
<RollingFile name="file" fileName="build/authn-api.log" append="true"
filePattern="trusted-%d{yyyy-MM-dd-HH}-%i.log.gz">
<PatternLayout pattern="%highlight{%d %p [%c] - %m%n}" />
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="org.apereo" level="error" additivity="false">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,6 @@
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{%d %p [%c] - &lt;%m&gt;%n}" />
</Console>
<RollingFile name="file" fileName="build/authn.log" append="true"
filePattern="events-%d{yyyy-MM-dd-HH}-%i.log.gz">
<PatternLayout pattern="%highlight{%d %p [%c] - %m%n}" />
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="org.apereo" level="off" additivity="false">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,6 @@
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{%d %p [%c] - &lt;%m&gt;%n}" />
</Console>
<RollingFile name="file" fileName="build/authnmfaapi.log" append="true"
filePattern="events-%d{yyyy-MM-dd-HH}-%i.log.gz">
<PatternLayout pattern="%highlight{%d %p [%c] - %m%n}" />
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="org.apereo" level="error" additivity="false">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,6 @@
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{%d %p [%c] - &lt;%m&gt;%n}" />
</Console>
<RollingFile name="file" fileName="build/gauth.log" append="true"
filePattern="gauth-%d{yyyy-MM-dd-HH}-%i.log.gz">
<PatternLayout pattern="%highlight{%d %p [%c] - %m%n}" />
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="org.apereo.cas" level="off">
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package org.apereo.cas.support.geo.google;

import org.apereo.cas.authentication.adaptive.geo.GeoLocationService;
import org.apereo.cas.support.geo.config.GoogleMapsGeoCodingConfiguration;

import lombok.val;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.autoconfigure.RefreshAutoConfiguration;
import org.springframework.test.context.TestPropertySource;

import static org.junit.jupiter.api.Assertions.*;

/**
* This is {@link GoogleMapsGeoLocationServiceTests}.
*
* @author Misagh Moayyed
* @since 6.1.0
*/
@SpringBootTest(classes = {
RefreshAutoConfiguration.class,
GoogleMapsGeoCodingConfiguration.class
})
@TestPropertySource(properties = "cas.googleMaps.apiKey=AIzaSyCea6zDOkwJVIOm0vZyAI5eHYrz9Vzlhi9")
public class GoogleMapsGeoLocationServiceTests {
@Autowired
@Qualifier("geoLocationService")
private GeoLocationService geoLocationService;

@Test
public void verifyOperation() {
assertNotNull(geoLocationService);
val resp = geoLocationService.locate(40.689060, -74.044636);
assertEquals(40.689060, resp.getLatitude());
assertEquals(-74.044636, resp.getLongitude());
assertTrue(resp.getAddresses().isEmpty());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Configuration shutdownHook="disable">
<Appenders>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{%d %p [%c] - &lt;%m&gt;%n}" />
</Console>
</Appenders>
<Loggers>
<Logger name="org.apereo" level="warn" additivity="false">
<AppenderRef ref="console"/>
</Logger>
<Root level="off">
<AppenderRef ref="console"/>
</Root>
</Loggers>
</Configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,6 @@
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{%d %p [%c] - &lt;%m&gt;%n}" />
</Console>
<RollingFile name="file" fileName="build/grouper.log" append="true"
filePattern="ehcache-%d{yyyy-MM-dd-HH}-%i.log.gz">
<PatternLayout pattern="%highlight{%d %p [%c] - %m%n}" />
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="org.apache.xml.security" level="off" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,6 @@
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{%d %p [%c] - &lt;%m&gt;%n}" />
</Console>
<RollingFile name="file" fileName="build/influxdb-core.log" append="true"
filePattern="trusted-%d{yyyy-MM-dd-HH}-%i.log.gz">
<PatternLayout pattern="%highlight{%d %p [%c] - %m%n}" />
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="org.apereo" level="off" additivity="false">
Expand Down
9 changes: 0 additions & 9 deletions support/cas-server-support-ldap/src/test/resources/log4j2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,6 @@
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{%d %p [%c] - &lt;%m&gt;%n}" />
</Console>
<RollingFile name="file" fileName="build/ldap.log" append="true"
filePattern="ldap-%d{yyyy-MM-dd-HH}-%i.log.gz">
<PatternLayout pattern="%highlight{%d %p [%c] - %m%n}" />
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="org.apereo" level="warn" additivity="false">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,6 @@
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{%d %p [%c] - &lt;%m&gt;%n}" />
</Console>
<RollingFile name="file" fileName="build/memcachedc.log" append="true"
filePattern="events-%d{yyyy-MM-dd-HH}-%i.log.gz">
<PatternLayout pattern="%highlight{%d %p [%c] - %m%n}" />
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="com.esotericsoftware" level="error">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,6 @@
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{%d %p [%c] - &lt;%m&gt;%n}" />
</Console>
<RollingFile name="file" fileName="build/memcached.log" append="true"
filePattern="memcached-%d{yyyy-MM-dd-HH}-%i.log.gz">
<PatternLayout pattern="%highlight{%d %p [%c] - %m%n}" />
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="org.apereo" level="off" additivity="false">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,6 @@
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{%d %p [%c] - &lt;%m&gt;%n}" />
</Console>
<RollingFile name="file" fileName="build/mongoauth.log" append="true"
filePattern="mongo-%d{yyyy-MM-dd-HH}-%i.log.gz">
<PatternLayout pattern="%highlight{%d %p [%c] - %m%n}" />
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB"/>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="org.apereo" level="off" additivity="false">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,9 @@ public ModelAndView handleRequest(final HttpServletRequest request,
return OAuth20Utils.produceUnauthorizedErrorView();
}

val clientId = context.getRequestParameter(OAuth20Constants.CLIENT_ID).map(String::valueOf).orElse(StringUtils.EMPTY);
val clientId = context.getRequestParameter(OAuth20Constants.CLIENT_ID)
.map(String::valueOf)
.orElse(StringUtils.EMPTY);
val registeredService = getRegisteredServiceByClientId(clientId);
try {
RegisteredServiceAccessStrategyUtils.ensureServiceAccessIsAllowed(clientId, registeredService);
Expand Down Expand Up @@ -127,11 +129,11 @@ protected ModelAndView redirectToCallbackRedirectUrl(final ProfileManager<Common
val profile = profileResult.get();
val service = getOAuthConfigurationContext().getAuthenticationBuilder()
.buildService(registeredService, context, false);
LOGGER.debug("Created service [{}] based on registered service [{}]", service, registeredService);
LOGGER.trace("Created service [{}] based on registered service [{}]", service, registeredService);

val authentication = getOAuthConfigurationContext().getAuthenticationBuilder()
.build(profile, registeredService, context, service);
LOGGER.debug("Created OAuth authentication [{}] for service [{}]", service, authentication);
LOGGER.trace("Created OAuth authentication [{}] for service [{}]", service, authentication);

try {
val audit = AuditableContext.builder()
Expand Down Expand Up @@ -208,8 +210,7 @@ protected ModelAndView buildAuthorizationForRequest(final OAuthRegisteredService
.claims(claims)
.build();

LOGGER.debug("Building authorization response for grant type [{}] with scopes [{}] for client id [{}]",
grantType, scopes, clientId);
LOGGER.debug("Building authorization response for grant type [{}] with scopes [{}] for client id [{}]", grantType, scopes, clientId);
return builder.build(context, clientId, holder);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,8 @@

import org.apereo.cas.support.oauth.OAuth20Constants;
import org.apereo.cas.support.oauth.OAuth20ResponseTypes;
import org.apereo.cas.support.oauth.services.OAuthRegisteredService;
import org.apereo.cas.ticket.accesstoken.AccessToken;
import org.apereo.cas.token.JwtBuilder;
import org.apereo.cas.util.DateTimeUtils;

import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor;
Expand All @@ -19,8 +17,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.util.LinkedHashMap;
import java.util.Map;

Expand Down Expand Up @@ -146,26 +142,12 @@ protected Map<String, Object> getAccessTokenResponseModel(final HttpServletReque
*/
protected String encodeAccessToken(final AccessToken accessToken,
final OAuth20AccessTokenResponseResult result) {

val registeredService = OAuthRegisteredService.class.cast(result.getRegisteredService());
val authentication = accessToken.getAuthentication();
val service = result.getService();

if (registeredService != null && registeredService.isJwtAccessToken()) {
val dt = ZonedDateTime.now(ZoneOffset.UTC).plusSeconds(result.getAccessTokenTimeout());
val builder = JwtBuilder.JwtRequest.builder();

val request = builder
.serviceAudience(service.getId())
.issueDate(DateTimeUtils.dateOf(authentication.getAuthenticationDate()))
.jwtId(accessToken.getId())
.subject(authentication.getPrincipal().getId())
.validUntilDate(DateTimeUtils.dateOf(dt))
.attributes(authentication.getAttributes())
.build();
return accessTokenJwtBuilder.build(request);
}

return accessToken.getId();
return OAuth20JwtAccessTokenEncoder.builder()
.accessToken(accessToken)
.registeredService(result.getRegisteredService())
.service(result.getService())
.accessTokenJwtBuilder(accessTokenJwtBuilder)
.build()
.encode();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package org.apereo.cas.support.oauth.web.response.accesstoken.response;

import org.apereo.cas.authentication.principal.Service;
import org.apereo.cas.services.RegisteredService;
import org.apereo.cas.support.oauth.services.OAuthRegisteredService;
import org.apereo.cas.ticket.accesstoken.AccessToken;
import org.apereo.cas.token.JwtBuilder;
import org.apereo.cas.util.DateTimeUtils;

import lombok.Builder;
import lombok.Getter;
import lombok.val;

import java.time.ZoneOffset;
import java.time.ZonedDateTime;

/**
* This is {@link OAuth20JwtAccessTokenEncoder}.
*
* @author Misagh Moayyed
* @since 6.1.0
*/
@Builder
@Getter
public class OAuth20JwtAccessTokenEncoder {
private final JwtBuilder accessTokenJwtBuilder;
private final AccessToken accessToken;
private final RegisteredService registeredService;
private final Service service;

public String encode() {
val oAuthRegisteredService = OAuthRegisteredService.class.cast(this.registeredService);
val authentication = accessToken.getAuthentication();
if (oAuthRegisteredService != null && oAuthRegisteredService.isJwtAccessToken()) {
val dt = ZonedDateTime.now(ZoneOffset.UTC).plusSeconds(accessToken.getExpirationPolicy().getTimeToLive());
val builder = JwtBuilder.JwtRequest.builder();

val request = builder
.serviceAudience(service.getId())
.issueDate(DateTimeUtils.dateOf(authentication.getAuthenticationDate()))
.jwtId(accessToken.getId())
.subject(authentication.getPrincipal().getId())
.validUntilDate(DateTimeUtils.dateOf(dt))
.attributes(authentication.getAttributes())
.build();
return accessTokenJwtBuilder.build(request);
}

return accessToken.getId();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@ public ModelAndView build(final JEEContext context, final String clientId,
@Override
public boolean supports(final JEEContext context) {
val responseType = context.getRequestParameter(OAuth20Constants.RESPONSE_TYPE)
.map(String::valueOf).orElse(StringUtils.EMPTY);
.map(String::valueOf)
.orElse(StringUtils.EMPTY);
return StringUtils.equalsIgnoreCase(responseType, OAuth20ResponseTypes.CODE.getType());
}

Expand All @@ -75,7 +76,8 @@ protected ModelAndView buildCallbackViewViaRedirectUri(final JEEContext context,
val nonce = attributes.get(OAuth20Constants.NONCE).get(0).toString();

val redirectUri = context.getRequestParameter(OAuth20Constants.REDIRECT_URI)
.map(String::valueOf).orElse(StringUtils.EMPTY);
.map(String::valueOf)
.orElse(StringUtils.EMPTY);
LOGGER.debug("Authorize request successful for client [{}] with redirect uri [{}]", clientId, redirectUri);

var callbackUrl = redirectUri;
Expand Down
Loading

0 comments on commit 372cb0d

Please sign in to comment.