keycloak-service
クラス | 公開メンバ関数 | 静的公開メンバ関数 | 静的非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel > クラステンプレート
org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel > 連携図
Collaboration graph

クラス

enum  ActionType
 
class  ParseResult
 

公開メンバ関数

 ClientSessionCode (KeycloakSession session, RealmModel realm, CLIENT_SESSION commonLoginSession)
 
CLIENT_SESSION getClientSession ()
 
boolean isValid (String requestedAction, ActionType actionType)
 
boolean isActionActive (ActionType actionType)
 
boolean isValidAction (String requestedAction)
 
void removeExpiredClientSession ()
 
void setAction (String action)
 
String getOrGenerateCode ()
 

静的公開メンバ関数

static< CLIENT_SESSION extends CommonClientSessionModel > ParseResult< CLIENT_SESSION > parseResult (String code, String tabId, KeycloakSession session, RealmModel realm, ClientModel client, EventBuilder event, Class< CLIENT_SESSION > sessionClass)
 
static< CLIENT_SESSION extends CommonClientSessionModel > ParseResult< CLIENT_SESSION > parseResult (String code, String tabId, KeycloakSession session, RealmModel realm, ClientModel client, EventBuilder event, CLIENT_SESSION clientSession)
 
static< CLIENT_SESSION extends CommonClientSessionModel > CLIENT_SESSION getClientSession (String code, String tabId, KeycloakSession session, RealmModel realm, ClientModel client, EventBuilder event, Class< CLIENT_SESSION > sessionClass)
 

静的非公開メンバ関数

static< CLIENT_SESSION extends CommonClientSessionModel > ParseResult< CLIENT_SESSION > parseResult (String code, KeycloakSession session, RealmModel realm, ParseResult< CLIENT_SESSION > result, CodeGenerateUtil.ClientSessionParser< CLIENT_SESSION > clientSessionParser)
 
static< CLIENT_SESSION extends CommonClientSessionModel > CLIENT_SESSION getClientSession (String code, String tabId, KeycloakSession session, RealmModel realm, ClientModel client, EventBuilder event, CodeGenerateUtil.ClientSessionParser< CLIENT_SESSION > clientSessionParser)
 

非公開変数類

KeycloakSession session
 
final RealmModel realm
 
final CLIENT_SESSION commonLoginSession
 

詳解

著者
Bill Burke
バージョン
Revision
1

クラス詳解

◆ org::keycloak::services::managers::ClientSessionCode::ActionType

enum org::keycloak::services::managers::ClientSessionCode::ActionType
org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.ActionType 連携図
Collaboration graph
列挙値
CLIENT
LOGIN
USER

構築子と解体子

◆ ClientSessionCode()

org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.ClientSessionCode ( KeycloakSession  session,
RealmModel  realm,
CLIENT_SESSION  commonLoginSession 
)
inline
44  {
45  this.session = session;
46  this.realm = realm;
48  }
KeycloakSession session
Definition: ClientSessionCode.java:34
final CLIENT_SESSION commonLoginSession
Definition: ClientSessionCode.java:36
final RealmModel realm
Definition: ClientSessionCode.java:35

関数詳解

◆ getClientSession() [1/3]

static <CLIENT_SESSION extends CommonClientSessionModel> CLIENT_SESSION org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.getClientSession ( String  code,
String  tabId,
KeycloakSession  session,
RealmModel  realm,
ClientModel  client,
EventBuilder  event,
Class< CLIENT_SESSION >  sessionClass 
)
inlinestatic
136  {
137  CodeGenerateUtil.ClientSessionParser<CLIENT_SESSION> clientSessionParser = CodeGenerateUtil.getParser(sessionClass);
138  return getClientSession(code, tabId, session, realm, client, event, clientSessionParser);
139  }
KeycloakSession session
Definition: ClientSessionCode.java:34
CLIENT_SESSION getClientSession()
Definition: ClientSessionCode.java:148
final RealmModel realm
Definition: ClientSessionCode.java:35

◆ getClientSession() [2/3]

static <CLIENT_SESSION extends CommonClientSessionModel> CLIENT_SESSION org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.getClientSession ( String  code,
String  tabId,
KeycloakSession  session,
RealmModel  realm,
ClientModel  client,
EventBuilder  event,
CodeGenerateUtil.ClientSessionParser< CLIENT_SESSION >  clientSessionParser 
)
inlinestaticprivate
143  {
144  return clientSessionParser.parseSession(code, tabId, session, realm, client, event);
145  }
KeycloakSession session
Definition: ClientSessionCode.java:34
final RealmModel realm
Definition: ClientSessionCode.java:35

◆ getClientSession() [3/3]

CLIENT_SESSION org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.getClientSession ( )
inline
148  {
149  return commonLoginSession;
150  }
final CLIENT_SESSION commonLoginSession
Definition: ClientSessionCode.java:36

◆ getOrGenerateCode()

String org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.getOrGenerateCode ( )
inline
203  {
204  CodeGenerateUtil.ClientSessionParser parser = CodeGenerateUtil.getParser(commonLoginSession.getClass());
205  return parser.retrieveCode(session, commonLoginSession);
206  }
KeycloakSession session
Definition: ClientSessionCode.java:34
final CLIENT_SESSION commonLoginSession
Definition: ClientSessionCode.java:36

◆ isActionActive()

boolean org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.isActionActive ( ActionType  actionType)
inline
157  {
158  CodeGenerateUtil.ClientSessionParser<CLIENT_SESSION> clientSessionParser = (CodeGenerateUtil.ClientSessionParser<CLIENT_SESSION>) CodeGenerateUtil.getParser(commonLoginSession.getClass());
159  int timestamp = clientSessionParser.getTimestamp(commonLoginSession);
160 
161  int lifespan;
162  switch (actionType) {
163  case CLIENT:
164  lifespan = realm.getAccessCodeLifespan();
165  break;
166  case LOGIN:
167  lifespan = realm.getAccessCodeLifespanLogin() > 0 ? realm.getAccessCodeLifespanLogin() : realm.getAccessCodeLifespanUserAction();
168  break;
169  case USER:
170  lifespan = realm.getAccessCodeLifespanUserAction();
171  break;
172  default:
173  throw new IllegalArgumentException();
174  }
175 
176  return timestamp + lifespan > Time.currentTime();
177  }
final CLIENT_SESSION commonLoginSession
Definition: ClientSessionCode.java:36
final RealmModel realm
Definition: ClientSessionCode.java:35

◆ isValid()

boolean org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.isValid ( String  requestedAction,
ActionType  actionType 
)
inline
152  {
153  if (!isValidAction(requestedAction)) return false;
154  return isActionActive(actionType);
155  }
boolean isActionActive(ActionType actionType)
Definition: ClientSessionCode.java:157
boolean isValidAction(String requestedAction)
Definition: ClientSessionCode.java:179

◆ isValidAction()

boolean org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.isValidAction ( String  requestedAction)
inline
179  {
180  String action = commonLoginSession.getAction();
181  if (action == null) {
182  return false;
183  }
184  if (!action.equals(requestedAction)) {
185  return false;
186  }
187  return true;
188  }
final CLIENT_SESSION commonLoginSession
Definition: ClientSessionCode.java:36

◆ parseResult() [1/3]

static <CLIENT_SESSION extends CommonClientSessionModel> ParseResult<CLIENT_SESSION> org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.parseResult ( String  code,
String  tabId,
KeycloakSession  session,
RealmModel  realm,
ClientModel  client,
EventBuilder  event,
Class< CLIENT_SESSION >  sessionClass 
)
inlinestatic
80  {
81  ParseResult<CLIENT_SESSION> result = new ParseResult<>();
82  if (code == null) {
83  result.illegalHash = true;
84  return result;
85  }
86  try {
87  CodeGenerateUtil.ClientSessionParser<CLIENT_SESSION> clientSessionParser = CodeGenerateUtil.getParser(sessionClass);
88  result.clientSession = getClientSession(code, tabId, session, realm, client, event, clientSessionParser);
89  return parseResult(code, session, realm, result, clientSessionParser);
90  } catch (RuntimeException e) {
91  result.illegalHash = true;
92  return result;
93  }
94  }
KeycloakSession session
Definition: ClientSessionCode.java:34
CLIENT_SESSION getClientSession()
Definition: ClientSessionCode.java:148
final RealmModel realm
Definition: ClientSessionCode.java:35
static< CLIENT_SESSION extends CommonClientSessionModel > ParseResult< CLIENT_SESSION > parseResult(String code, String tabId, KeycloakSession session, RealmModel realm, ClientModel client, EventBuilder event, Class< CLIENT_SESSION > sessionClass)
Definition: ClientSessionCode.java:78

◆ parseResult() [2/3]

static <CLIENT_SESSION extends CommonClientSessionModel> ParseResult<CLIENT_SESSION> org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.parseResult ( String  code,
String  tabId,
KeycloakSession  session,
RealmModel  realm,
ClientModel  client,
EventBuilder  event,
CLIENT_SESSION  clientSession 
)
inlinestatic
98  {
99  ParseResult<CLIENT_SESSION> result = new ParseResult<>();
100  result.clientSession = clientSession;
101  if (code == null) {
102  result.illegalHash = true;
103  return result;
104  }
105  try {
106  CodeGenerateUtil.ClientSessionParser<CLIENT_SESSION> clientSessionParser = CodeGenerateUtil.getParser((Class<CLIENT_SESSION>)clientSession.getClass());
107  return parseResult(code, session, realm, result, clientSessionParser);
108  } catch (RuntimeException e) {
109  result.illegalHash = true;
110  return result;
111  }
112  }
KeycloakSession session
Definition: ClientSessionCode.java:34
final RealmModel realm
Definition: ClientSessionCode.java:35
static< CLIENT_SESSION extends CommonClientSessionModel > ParseResult< CLIENT_SESSION > parseResult(String code, String tabId, KeycloakSession session, RealmModel realm, ClientModel client, EventBuilder event, Class< CLIENT_SESSION > sessionClass)
Definition: ClientSessionCode.java:78

◆ parseResult() [3/3]

static <CLIENT_SESSION extends CommonClientSessionModel> ParseResult<CLIENT_SESSION> org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.parseResult ( String  code,
KeycloakSession  session,
RealmModel  realm,
ParseResult< CLIENT_SESSION >  result,
CodeGenerateUtil.ClientSessionParser< CLIENT_SESSION >  clientSessionParser 
)
inlinestaticprivate
114  {
115  if (result.clientSession == null) {
116  result.authSessionNotFound = true;
117  return result;
118  }
119 
120  if (!clientSessionParser.verifyCode(session, code, result.clientSession)) {
121  result.illegalHash = true;
122  return result;
123  }
124 
125  if (clientSessionParser.isExpired(session, code, result.clientSession)) {
126  result.expiredToken = true;
127  return result;
128  }
129 
130  result.code = new ClientSessionCode<CLIENT_SESSION>(session, realm, result.clientSession);
131  return result;
132  }
KeycloakSession session
Definition: ClientSessionCode.java:34
final RealmModel realm
Definition: ClientSessionCode.java:35

◆ removeExpiredClientSession()

void org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.removeExpiredClientSession ( )
inline
190  {
191  CodeGenerateUtil.ClientSessionParser parser = CodeGenerateUtil.getParser(commonLoginSession.getClass());
192  parser.removeExpiredSession(session, commonLoginSession);
193  }
KeycloakSession session
Definition: ClientSessionCode.java:34
final CLIENT_SESSION commonLoginSession
Definition: ClientSessionCode.java:36

◆ setAction()

void org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.setAction ( String  action)
inline
196  {
197  commonLoginSession.setAction(action);
198 
199  CodeGenerateUtil.ClientSessionParser<CLIENT_SESSION> clientSessionParser = (CodeGenerateUtil.ClientSessionParser<CLIENT_SESSION>) CodeGenerateUtil.getParser(commonLoginSession.getClass());
200  clientSessionParser.setTimestamp(commonLoginSession, Time.currentTime());
201  }
final CLIENT_SESSION commonLoginSession
Definition: ClientSessionCode.java:36

メンバ詳解

◆ commonLoginSession

final CLIENT_SESSION org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.commonLoginSession
private

◆ realm

final RealmModel org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.realm
private

◆ session

KeycloakSession org.keycloak.services.managers.ClientSessionCode< CLIENT_SESSION extends CommonClientSessionModel >.session
private

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