mitreid-connect
公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.mitre.oauth2.service.impl.DefaultOAuth2AuthorizationCodeService クラス
org.mitre.oauth2.service.impl.DefaultOAuth2AuthorizationCodeService の継承関係図
Inheritance graph
org.mitre.oauth2.service.impl.DefaultOAuth2AuthorizationCodeService 連携図
Collaboration graph

公開メンバ関数

String createAuthorizationCode (OAuth2Authentication authentication)
 
OAuth2Authentication consumeAuthorizationCode (String code) throws InvalidGrantException
 
void clearExpiredAuthorizationCodes ()
 
AuthorizationCodeRepository getRepository ()
 
void setRepository (AuthorizationCodeRepository repository)
 
int getAuthCodeExpirationSeconds ()
 
void setAuthCodeExpirationSeconds (int authCodeExpirationSeconds)
 

非公開変数類

AuthorizationCodeRepository repository
 
AuthenticationHolderRepository authenticationHolderRepository
 
int authCodeExpirationSeconds = 60 * 5
 
RandomValueStringGenerator generator = new RandomValueStringGenerator()
 

静的非公開変数類

static final Logger logger = LoggerFactory.getLogger(DefaultOAuth2AuthorizationCodeService.class)
 

詳解

Database-backed, random-value authorization code service implementation.

著者
aanganes

関数詳解

◆ clearExpiredAuthorizationCodes()

void org.mitre.oauth2.service.impl.DefaultOAuth2AuthorizationCodeService.clearExpiredAuthorizationCodes ( )
inline

Find and remove all expired auth codes.

119  {
120 
121  new AbstractPageOperationTemplate<AuthorizationCodeEntity>("clearExpiredAuthorizationCodes"){
122  @Override
123  public Collection<AuthorizationCodeEntity> fetchPage() {
124  return repository.getExpiredCodes();
125  }
126 
127  @Override
128  protected void doOperation(AuthorizationCodeEntity item) {
129  repository.remove(item);
130  }
131  }.execute();
132  }
void remove(AuthorizationCodeEntity authorizationCodeEntity)
AuthorizationCodeRepository repository
Definition: DefaultOAuth2AuthorizationCodeService.java:53
Collection< AuthorizationCodeEntity > getExpiredCodes()

◆ consumeAuthorizationCode()

OAuth2Authentication org.mitre.oauth2.service.impl.DefaultOAuth2AuthorizationCodeService.consumeAuthorizationCode ( String  code) throws InvalidGrantException
inline

Consume a given authorization code. Match the provided string to an AuthorizationCodeEntity. If one is found, return the authentication associated with the code. If one is not found, throw an InvalidGrantException.

引数
codethe authorization code
戻り値
the authentication that made the original request
例外
InvalidGrantException,ifan AuthorizationCodeEntity is not found with the given value
100  {
101 
102  AuthorizationCodeEntity result = repository.getByCode(code);
103 
104  if (result == null) {
105  throw new InvalidGrantException("JpaAuthorizationCodeRepository: no authorization code found for value " + code);
106  }
107 
108  OAuth2Authentication auth = result.getAuthenticationHolder().getAuthentication();
109 
110  repository.remove(result);
111 
112  return auth;
113  }
void remove(AuthorizationCodeEntity authorizationCodeEntity)
AuthorizationCodeRepository repository
Definition: DefaultOAuth2AuthorizationCodeService.java:53
AuthorizationCodeEntity getByCode(String code)

◆ createAuthorizationCode()

String org.mitre.oauth2.service.impl.DefaultOAuth2AuthorizationCodeService.createAuthorizationCode ( OAuth2Authentication  authentication)
inline

Generate a random authorization code and create an AuthorizationCodeEntity, which will be stored in the repository.

引数
authenticationthe authentication of the current user, to be retrieved when the code is consumed
戻り値
the authorization code
72  {
73  String code = generator.generate();
74 
75  // attach the authorization so that we can look it up later
76  AuthenticationHolderEntity authHolder = new AuthenticationHolderEntity();
77  authHolder.setAuthentication(authentication);
78  authHolder = authenticationHolderRepository.save(authHolder);
79 
80  // set the auth code to expire
81  Date expiration = new Date(System.currentTimeMillis() + (getAuthCodeExpirationSeconds() * 1000L));
82 
83  AuthorizationCodeEntity entity = new AuthorizationCodeEntity(code, authHolder, expiration);
84  repository.save(entity);
85 
86  return code;
87  }
AuthenticationHolderRepository authenticationHolderRepository
Definition: DefaultOAuth2AuthorizationCodeService.java:56
AuthorizationCodeEntity save(AuthorizationCodeEntity authorizationCode)
AuthenticationHolderEntity save(AuthenticationHolderEntity a)
AuthorizationCodeRepository repository
Definition: DefaultOAuth2AuthorizationCodeService.java:53
int getAuthCodeExpirationSeconds()
Definition: DefaultOAuth2AuthorizationCodeService.java:151
RandomValueStringGenerator generator
Definition: DefaultOAuth2AuthorizationCodeService.java:60

◆ getAuthCodeExpirationSeconds()

int org.mitre.oauth2.service.impl.DefaultOAuth2AuthorizationCodeService.getAuthCodeExpirationSeconds ( )
inline
戻り値
the authCodeExpirationSeconds
151  {
153  }
int authCodeExpirationSeconds
Definition: DefaultOAuth2AuthorizationCodeService.java:58

◆ getRepository()

AuthorizationCodeRepository org.mitre.oauth2.service.impl.DefaultOAuth2AuthorizationCodeService.getRepository ( )
inline
戻り値
the repository
137  {
138  return repository;
139  }
AuthorizationCodeRepository repository
Definition: DefaultOAuth2AuthorizationCodeService.java:53

◆ setAuthCodeExpirationSeconds()

void org.mitre.oauth2.service.impl.DefaultOAuth2AuthorizationCodeService.setAuthCodeExpirationSeconds ( int  authCodeExpirationSeconds)
inline
引数
authCodeExpirationSecondsthe authCodeExpirationSeconds to set
158  {
160  }
int authCodeExpirationSeconds
Definition: DefaultOAuth2AuthorizationCodeService.java:58

◆ setRepository()

void org.mitre.oauth2.service.impl.DefaultOAuth2AuthorizationCodeService.setRepository ( AuthorizationCodeRepository  repository)
inline
引数
repositorythe repository to set
144  {
145  this.repository = repository;
146  }
AuthorizationCodeRepository repository
Definition: DefaultOAuth2AuthorizationCodeService.java:53

メンバ詳解

◆ authCodeExpirationSeconds

int org.mitre.oauth2.service.impl.DefaultOAuth2AuthorizationCodeService.authCodeExpirationSeconds = 60 * 5
private

◆ authenticationHolderRepository

AuthenticationHolderRepository org.mitre.oauth2.service.impl.DefaultOAuth2AuthorizationCodeService.authenticationHolderRepository
private

◆ generator

RandomValueStringGenerator org.mitre.oauth2.service.impl.DefaultOAuth2AuthorizationCodeService.generator = new RandomValueStringGenerator()
private

◆ logger

final Logger org.mitre.oauth2.service.impl.DefaultOAuth2AuthorizationCodeService.logger = LoggerFactory.getLogger(DefaultOAuth2AuthorizationCodeService.class)
staticprivate

◆ repository

AuthorizationCodeRepository org.mitre.oauth2.service.impl.DefaultOAuth2AuthorizationCodeService.repository
private

このクラス詳解は次のファイルから抽出されました: