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

公開メンバ関数

UserDetails loadUserByUsername (String clientId) throws UsernameNotFoundException
 
ClientDetailsEntityService getClientDetailsService ()
 
void setClientDetailsService (ClientDetailsEntityService clientDetailsService)
 

非公開変数類

ClientDetailsEntityService clientDetailsService
 
ConfigurationPropertiesBean config
 

静的非公開変数類

static GrantedAuthority ROLE_CLIENT = new SimpleGrantedAuthority("ROLE_CLIENT")
 

詳解

Loads client details based on URI encoding as passed in from basic auth.

Should only get called if non-encoded provider fails.

著者
AANGANES

関数詳解

◆ getClientDetailsService()

ClientDetailsEntityService org.mitre.oauth2.service.impl.UriEncodedClientUserDetailsService.getClientDetailsService ( )
inline
100  {
101  return clientDetailsService;
102  }
ClientDetailsEntityService clientDetailsService
Definition: UriEncodedClientUserDetailsService.java:55

◆ loadUserByUsername()

UserDetails org.mitre.oauth2.service.impl.UriEncodedClientUserDetailsService.loadUserByUsername ( String  clientId) throws UsernameNotFoundException
inline
61  {
62 
63  try {
64  String decodedClientId = UriUtils.decode(clientId, "UTF-8");
65 
66  ClientDetailsEntity client = clientDetailsService.loadClientByClientId(decodedClientId);
67 
68  if (client != null) {
69 
70  String encodedPassword = UriUtils.encodePathSegment(Strings.nullToEmpty(client.getClientSecret()), "UTF-8");
71 
72  if (config.isHeartMode() || // if we're running HEART mode turn off all client secrets
73  (client.getTokenEndpointAuthMethod() != null &&
74  (client.getTokenEndpointAuthMethod().equals(AuthMethod.PRIVATE_KEY) ||
75  client.getTokenEndpointAuthMethod().equals(AuthMethod.SECRET_JWT)))) {
76 
77  // Issue a random password each time to prevent password auth from being used (or skipped)
78  // for private key or shared key clients, see #715
79 
80  encodedPassword = new BigInteger(512, new SecureRandom()).toString(16);
81  }
82 
83  boolean enabled = true;
84  boolean accountNonExpired = true;
85  boolean credentialsNonExpired = true;
86  boolean accountNonLocked = true;
87  Collection<GrantedAuthority> authorities = new HashSet<>(client.getAuthorities());
88  authorities.add(ROLE_CLIENT);
89 
90  return new User(decodedClientId, encodedPassword, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities);
91  } else {
92  throw new UsernameNotFoundException("Client not found: " + clientId);
93  }
94  } catch (UnsupportedEncodingException | InvalidClientException e) {
95  throw new UsernameNotFoundException("Client not found: " + clientId);
96  }
97 
98  }
ConfigurationPropertiesBean config
Definition: UriEncodedClientUserDetailsService.java:58
ClientDetailsEntityService clientDetailsService
Definition: UriEncodedClientUserDetailsService.java:55
ClientDetailsEntity loadClientByClientId(String clientId)
static GrantedAuthority ROLE_CLIENT
Definition: UriEncodedClientUserDetailsService.java:52
boolean isHeartMode()
Definition: ConfigurationPropertiesBean.java:250

◆ setClientDetailsService()

void org.mitre.oauth2.service.impl.UriEncodedClientUserDetailsService.setClientDetailsService ( ClientDetailsEntityService  clientDetailsService)
inline
104  {
106  }
ClientDetailsEntityService clientDetailsService
Definition: UriEncodedClientUserDetailsService.java:55

メンバ詳解

◆ clientDetailsService

ClientDetailsEntityService org.mitre.oauth2.service.impl.UriEncodedClientUserDetailsService.clientDetailsService
private

◆ config

ConfigurationPropertiesBean org.mitre.oauth2.service.impl.UriEncodedClientUserDetailsService.config
private

◆ ROLE_CLIENT

GrantedAuthority org.mitre.oauth2.service.impl.UriEncodedClientUserDetailsService.ROLE_CLIENT = new SimpleGrantedAuthority("ROLE_CLIENT")
staticprivate

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