package com.github.hburgmeier.jerseyoauth2.sample.services;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.joda.time.Duration;
import com.github.hburgmeier.jerseyoauth2.api.types.ParameterStyle;
import com.github.hburgmeier.jerseyoauth2.api.types.TokenType;
import com.github.hburgmeier.jerseyoauth2.authsrv.api.AbstractConfiguration;
import com.github.hburgmeier.jerseyoauth2.authsrv.api.ScopeDescription;
import com.github.hburgmeier.jerseyoauth2.rs.api.IRSConfiguration;
public class Configuration extends AbstractConfiguration implements IRSConfiguration {
private Set<String> defaultScopes;
private Map<String, ScopeDescription> scopeDescriptions = new HashMap<>();
public Configuration()
{
this.defaultScopes = new HashSet<String>(Arrays.asList(ScopeConstants.RANDOM));
ScopeDescription sd = new ScopeDescription(ScopeConstants.RANDOM, "Access to Random Generator");
scopeDescriptions.put(ScopeConstants.RANDOM, sd);
}
@Override
public Duration getTokenLifetime() {
return Duration.standardHours(1);
}
@Override
public Map<String, ScopeDescription> getScopeDescriptions() {
return scopeDescriptions;
}
@Override
public Set<String> getDefaultScopes() {
return defaultScopes;
}
@Override
public boolean getStrictSecurity() {
return false;
}
@Override
public boolean getEnableAuthorizationHeaderForClientAuth() {
return true;
}
@Override
public EnumSet<ParameterStyle> getSupportedOAuthParameterStyles() {
return EnumSet.of(ParameterStyle.QUERY, ParameterStyle.HEADER);
}
@Override
public EnumSet<TokenType> getSupportedTokenTypes() {
return EnumSet.of(TokenType.BEARER);
}
@Override
public boolean getEnableRefreshTokenGeneration() {
return true;
}
@Override
public boolean getAllowScopeEnhancementWithRefreshToken() {
return true;
}
}