Made nonce storage duration configurable in application-context.xml;

pull/263/head
Amanda Anganes 2013-01-10 10:34:40 -05:00
parent 358bf7fc1c
commit ad5e77f7ff
2 changed files with 25 additions and 3 deletions

View File

@ -11,6 +11,9 @@ import org.joda.time.Period;
import org.mitre.oauth2.exception.NonceReuseException;
import org.mitre.openid.connect.model.Nonce;
import org.mitre.openid.connect.service.NonceService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.oauth2.common.exceptions.InvalidClientException;
import org.springframework.security.oauth2.common.exceptions.InvalidScopeException;
@ -23,16 +26,17 @@ import org.springframework.security.oauth2.provider.DefaultAuthorizationRequest;
import org.springframework.stereotype.Component;
@Component
public class ConnectAuthorizationRequestManager implements AuthorizationRequestManager {
public class ConnectAuthorizationRequestManager implements AuthorizationRequestManager, InitializingBean {
private static Logger logger = LoggerFactory.getLogger(ConnectAuthorizationRequestManager.class);
@Autowired
private NonceService nonceService;
@Autowired
private ClientDetailsService clientDetailsService;
//TODO how to specify this? Should use int "nonceValiditySeconds" instead?
private Period nonceStorageDuration = new Period(1, 0, 0, 0, 0, 0, 0, 0);
private Period nonceStorageDuration;
/**
* Constructor with arguments
@ -51,6 +55,15 @@ public class ConnectAuthorizationRequestManager implements AuthorizationRequestM
public ConnectAuthorizationRequestManager() {
}
/**
* Make sure that the nonce storage duration was set
*/
public void afterPropertiesSet() throws Exception {
if (nonceStorageDuration == null) {
logger.error("Nonce storage duration must be set!");
}
}
@Override
public AuthorizationRequest createAuthorizationRequest(Map<String, String> parameters) {

View File

@ -140,6 +140,14 @@
<authentication-provider user-service-ref="clientUserDetailsService" />
</authentication-manager>
<!-- A JodaTime Period for the nonce storage duration. Constructor takes (hours, minutes, seconds, milliseconds). -->
<bean id="nonceStorageDurationPeriod" class="org.joda.time.Period">
<constructor-arg type="int" index="0" value="24"/>
<constructor-arg type="int" index="1" value="0"/>
<constructor-arg type="int" index="2" value="0"/>
<constructor-arg type="int" index="3" value="0"/>
</bean>
<bean id="authorizationRequestManager" class="org.mitre.openid.connect.ConnectAuthorizationRequestManager">
<constructor-arg>
<bean class="org.mitre.oauth2.service.impl.DefaultOAuth2ClientDetailsEntityService" />
@ -147,6 +155,7 @@
<constructor-arg>
<bean class="org.mitre.openid.connect.service.impl.DefaultNonceService" />
</constructor-arg>
<property name="nonceStorageDuration" ref="nonceStorageDurationPeriod"/>
</bean>
<bean class="org.mitre.openid.connect.token.TofuUserApprovalHandler" id="jdbcUserApprovalHandler">