gluu
公開メンバ関数 | 静的公開メンバ関数 | 限定公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.xdi.oxauth.uma.service.UmaGatherer クラス
org.xdi.oxauth.uma.service.UmaGatherer 連携図
Collaboration graph

公開メンバ関数

boolean gather ()
 
String prepareForStep ()
 
String result (String resultCode)
 
void addMessage (FacesMessage.Severity severity, String summary)
 
Map< String, String > getPageClaims ()
 

静的公開メンバ関数

static String addQueryParameters (String url, String parameters)
 
static String addQueryParameter (String url, String paramName, String paramValue)
 

限定公開メンバ関数

CustomScriptConfiguration getScript (final SessionId session)
 

非公開メンバ関数

void onSuccess (SessionId session, UmaGatherContext context)
 
String constructRedirectUri (SessionId session, UmaGatherContext context, String newTicket)
 
void errorPage (String errorKey)
 

非公開変数類

Logger log
 
ExternalUmaClaimsGatheringService external
 
AppConfiguration appConfiguration
 
FacesContext facesContext
 
ExternalContext externalContext
 
FacesService facesService
 
LanguageBean languageBean
 
UmaSessionService umaSessionService
 
UmaPermissionService umaPermissionService
 
UmaPctService umaPctService
 
UserService userService
 
final Map< String, String > pageClaims = new HashMap<String, String>()
 

詳解

著者
yuriyz
バージョン
August 9, 2017

関数詳解

◆ addMessage()

void org.xdi.oxauth.uma.service.UmaGatherer.addMessage ( FacesMessage.Severity  severity,
String  summary 
)
inline
246  {
247  String msg = languageBean.getMessage(summary);
248  FacesMessage message = new FacesMessage(severity, msg, null);
249  facesContext.addMessage(null, message);
250  }
FacesContext facesContext
Definition: UmaGatherer.java:50
String getMessage(String key)
Definition: LanguageBean.java:59
LanguageBean languageBean
Definition: UmaGatherer.java:56

◆ addQueryParameter()

static String org.xdi.oxauth.uma.service.UmaGatherer.addQueryParameter ( String  url,
String  paramName,
String  paramValue 
)
inlinestatic
168  {
169  if (StringUtils.isBlank(url)) {
170  return "";
171  }
172  if (StringUtils.isNotBlank(paramValue)) {
173  if (url.contains("?")) {
174  url += "&" + paramName + "=" + paramValue;
175  } else {
176  url += "?" + paramName + "=" + paramValue;
177  }
178  }
179  return url;
180  }

◆ addQueryParameters()

static String org.xdi.oxauth.uma.service.UmaGatherer.addQueryParameters ( String  url,
String  parameters 
)
inlinestatic
157  {
158  if (StringUtils.isNotBlank(parameters)) {
159  if (url.contains("?")) {
160  url += "&" + parameters;
161  } else {
162  url += "?" + parameters;
163  }
164  }
165  return url;
166  }

◆ constructRedirectUri()

String org.xdi.oxauth.uma.service.UmaGatherer.constructRedirectUri ( SessionId  session,
UmaGatherContext  context,
String  newTicket 
)
inlineprivate
144  {
145  String claimsRedirectUri = umaSessionService.getClaimsRedirectUri(session);
146  if (StringUtils.isBlank(claimsRedirectUri)) {
147  log.debug("claims_redirect_uri is blank, session: " + session);
148  return "";
149  }
150 
151  claimsRedirectUri = addQueryParameters(claimsRedirectUri, context.getRedirectUserParameters().buildQueryString().trim());
152  claimsRedirectUri = addQueryParameter(claimsRedirectUri, "state", umaSessionService.getState(session));
153  claimsRedirectUri = addQueryParameter(claimsRedirectUri, "ticket", newTicket);
154  return claimsRedirectUri;
155  }
String getClaimsRedirectUri(SessionId session)
Definition: UmaSessionService.java:182
Logger log
Definition: UmaGatherer.java:44
String getState(SessionId session)
Definition: UmaSessionService.java:190
static String addQueryParameter(String url, String paramName, String paramValue)
Definition: UmaGatherer.java:168
static String addQueryParameters(String url, String parameters)
Definition: UmaGatherer.java:157
UmaSessionService umaSessionService
Definition: UmaGatherer.java:58

◆ errorPage()

void org.xdi.oxauth.uma.service.UmaGatherer.errorPage ( String  errorKey)
inlineprivate
230  {
231  addMessage(FacesMessage.SEVERITY_ERROR, errorKey);
232  facesService.redirect("/error.xhtml");
233  }
FacesService facesService
Definition: UmaGatherer.java:54
void addMessage(FacesMessage.Severity severity, String summary)
Definition: UmaGatherer.java:246

◆ gather()

boolean org.xdi.oxauth.uma.service.UmaGatherer.gather ( )
inline
68  {
69  try {
70  final HttpServletRequest httpRequest = (HttpServletRequest) externalContext.getRequest();
71  final HttpServletResponse httpResponse = (HttpServletResponse) externalContext.getResponse();
72  final SessionId session = umaSessionService.getSession(httpRequest, httpResponse);
73 
74  CustomScriptConfiguration script = getScript(session);
75  UmaGatherContext context = new UmaGatherContext(script.getConfigurationAttributes(), httpRequest, session, umaSessionService, umaPermissionService,
77 
78  int step = umaSessionService.getStep(session);
79  if (!umaSessionService.isPassedPreviousSteps(session, step)) {
80  log.error("There are claims-gathering steps not marked as passed. scriptName: '{}', step: '{}'", script.getName(), step);
81  return false;
82  }
83 
84  boolean gatheredResult = external.gather(script, step, context);
85  log.debug("Claims-gathering result for script '{}', step: '{}', gatheredResult: '{}'", script.getName(), step, gatheredResult);
86 
87  int overridenNextStep = external.getNextStep(script, step, context);
88 
89  if (!gatheredResult && overridenNextStep == -1) {
90  return false;
91  }
92 
93  if (overridenNextStep != -1) {
94  umaSessionService.resetToStep(session, overridenNextStep, step);
95  step = overridenNextStep;
96  }
97 
98  int stepsCount = external.getStepsCount(script, context);
99 
100  if (step < stepsCount || overridenNextStep != -1) {
101  int nextStep;
102  if (overridenNextStep != -1) {
103  nextStep = overridenNextStep;
104  } else {
105  nextStep = step + 1;
106  umaSessionService.markStep(session, step, true);
107  }
108 
109  umaSessionService.setStep(nextStep, session);
110  context.persist();
111 
112  String page = external.getPageForStep(script, nextStep, context);
113 
114  log.trace("Redirecting to page: '{}'", page);
115  facesService.redirect(page);
116  return true;
117  }
118 
119  if (step == stepsCount) {
120  context.persist();
121  onSuccess(session, context);
122  return true;
123  }
124  } catch (Exception e) {
125  log.error("Exception during gather() method call.", e);
126  }
127 
128  log.error("Failed to perform gather() method successfully.");
129  return false;
130  }
void onSuccess(SessionId session, UmaGatherContext context)
Definition: UmaGatherer.java:132
UserService userService
Definition: UmaGatherer.java:64
boolean gather(CustomScriptConfiguration script, int step, UmaGatherContext context)
Definition: ExternalUmaClaimsGatheringService.java:108
Logger log
Definition: UmaGatherer.java:44
FacesService facesService
Definition: UmaGatherer.java:54
AppConfiguration appConfiguration
Definition: UmaGatherer.java:48
final Map< String, String > pageClaims
Definition: UmaGatherer.java:66
UmaPctService umaPctService
Definition: UmaGatherer.java:62
int getStepsCount(CustomScriptConfiguration script, UmaGatherContext context)
Definition: ExternalUmaClaimsGatheringService.java:147
CustomScriptConfiguration getScript(final SessionId session)
Definition: UmaGatherer.java:256
UmaPermissionService umaPermissionService
Definition: UmaGatherer.java:60
UmaSessionService umaSessionService
Definition: UmaGatherer.java:58
int getNextStep(CustomScriptConfiguration script, int step, UmaGatherContext context)
Definition: ExternalUmaClaimsGatheringService.java:121
String getPageForStep(CustomScriptConfiguration script, int step, UmaGatherContext context)
Definition: ExternalUmaClaimsGatheringService.java:160
ExternalUmaClaimsGatheringService external
Definition: UmaGatherer.java:46
ExternalContext externalContext
Definition: UmaGatherer.java:52
SessionId getSession(HttpServletRequest httpRequest, HttpServletResponse httpResponse)
Definition: UmaSessionService.java:54

◆ getPageClaims()

Map<String, String> org.xdi.oxauth.uma.service.UmaGatherer.getPageClaims ( )
inline
252  {
253  return pageClaims;
254  }
final Map< String, String > pageClaims
Definition: UmaGatherer.java:66

◆ getScript()

CustomScriptConfiguration org.xdi.oxauth.uma.service.UmaGatherer.getScript ( final SessionId  session)
inlineprotected
256  {
257  String scriptName = umaSessionService.getScriptName(session);
258  CustomScriptConfiguration script = external.getCustomScriptConfigurationByName(scriptName);
259 
260  return script;
261  }
String getScriptName(SessionId session)
Definition: UmaSessionService.java:158
UmaSessionService umaSessionService
Definition: UmaGatherer.java:58
ExternalUmaClaimsGatheringService external
Definition: UmaGatherer.java:46

◆ onSuccess()

void org.xdi.oxauth.uma.service.UmaGatherer.onSuccess ( SessionId  session,
UmaGatherContext  context 
)
inlineprivate
132  {
133  List<UmaPermission> permissions = context.getPermissions();
134  String newTicket = umaPermissionService.changeTicket(permissions, permissions.get(0).getAttributes());
135 
136  String url = constructRedirectUri(session, context, newTicket);
137  if (StringUtils.isNotBlank(url)) {
138  facesService.redirectToExternalURL(url);
139  } else {
140  log.debug("Redirect to claims_redirect_uri is skipped because it was not provided during request.");
141  }
142  }
Logger log
Definition: UmaGatherer.java:44
FacesService facesService
Definition: UmaGatherer.java:54
String changeTicket(List< UmaPermission > permissions, Map< String, String > attributes)
Definition: UmaPermissionService.java:217
String constructRedirectUri(SessionId session, UmaGatherContext context, String newTicket)
Definition: UmaGatherer.java:144
UmaPermissionService umaPermissionService
Definition: UmaGatherer.java:60

◆ prepareForStep()

String org.xdi.oxauth.uma.service.UmaGatherer.prepareForStep ( )
inline
182  {
183  try {
184  final HttpServletRequest httpRequest = (HttpServletRequest) externalContext.getRequest();
185  final HttpServletResponse httpResponse = (HttpServletResponse) externalContext.getResponse();
186  final SessionId session = umaSessionService.getSession(httpRequest, httpResponse);
187 
188  if (session == null || session.getSessionAttributes().isEmpty()) {
189  log.error("Invalid session.");
190  return result(Constants.RESULT_EXPIRED);
191  }
192 
193  CustomScriptConfiguration script = getScript(session);
194  UmaGatherContext context = new UmaGatherContext(script.getConfigurationAttributes(), httpRequest, session, umaSessionService, umaPermissionService,
196 
197  int step = umaSessionService.getStep(session);
198  if (step < 1) {
199  log.error("Invalid step: {}", step);
200  return result(Constants.RESULT_INVALID_STEP);
201  }
202  if (script == null) {
203  log.error("Failed to load script, step: '{}'", step);
204  return result(Constants.RESULT_FAILURE);
205  }
206 
207  if (!umaSessionService.isPassedPreviousSteps(session, step)) {
208  log.error("There are claims-gathering steps not marked as passed. scriptName: '{}', step: '{}'", script.getName(), step);
209  return result(Constants.RESULT_FAILURE);
210  }
211 
212  boolean result = external.prepareForStep(script, step, context);
213  if (result) {
214  context.persist();
215  return result(Constants.RESULT_SUCCESS);
216  } else {
217  String redirectToExternalUrl = context.getRedirectToExternalUrl();
218  if (StringUtils.isNotBlank(redirectToExternalUrl)) {
219  log.debug("Redirect to : " + redirectToExternalUrl);
220  facesService.redirectToExternalURL(redirectToExternalUrl);
221  return redirectToExternalUrl;
222  }
223  }
224  } catch (Exception e) {
225  log.error("Failed to prepareForStep()", e);
226  }
227  return result(Constants.RESULT_FAILURE);
228  }
UserService userService
Definition: UmaGatherer.java:64
Logger log
Definition: UmaGatherer.java:44
FacesService facesService
Definition: UmaGatherer.java:54
AppConfiguration appConfiguration
Definition: UmaGatherer.java:48
String result(String resultCode)
Definition: UmaGatherer.java:235
final Map< String, String > pageClaims
Definition: UmaGatherer.java:66
UmaPctService umaPctService
Definition: UmaGatherer.java:62
CustomScriptConfiguration getScript(final SessionId session)
Definition: UmaGatherer.java:256
UmaPermissionService umaPermissionService
Definition: UmaGatherer.java:60
UmaSessionService umaSessionService
Definition: UmaGatherer.java:58
ExternalUmaClaimsGatheringService external
Definition: UmaGatherer.java:46
ExternalContext externalContext
Definition: UmaGatherer.java:52
SessionId getSession(HttpServletRequest httpRequest, HttpServletResponse httpResponse)
Definition: UmaSessionService.java:54
boolean prepareForStep(CustomScriptConfiguration script, int step, UmaGatherContext context)
Definition: ExternalUmaClaimsGatheringService.java:134

◆ result()

String org.xdi.oxauth.uma.service.UmaGatherer.result ( String  resultCode)
inline
235  {
236  if (Constants.RESULT_FAILURE.equals(resultCode)) {
237  addMessage(FacesMessage.SEVERITY_ERROR, "uma2.gather.failed");
238  } else if (Constants.RESULT_INVALID_STEP.equals(resultCode)) {
239  addMessage(FacesMessage.SEVERITY_ERROR, "uma2.invalid.step");
240  } else if (Constants.RESULT_EXPIRED.equals(resultCode)) {
241  addMessage(FacesMessage.SEVERITY_ERROR, "uma2.invalid.session");
242  }
243  return resultCode;
244  }
void addMessage(FacesMessage.Severity severity, String summary)
Definition: UmaGatherer.java:246

メンバ詳解

◆ appConfiguration

AppConfiguration org.xdi.oxauth.uma.service.UmaGatherer.appConfiguration
private

◆ external

ExternalUmaClaimsGatheringService org.xdi.oxauth.uma.service.UmaGatherer.external
private

◆ externalContext

ExternalContext org.xdi.oxauth.uma.service.UmaGatherer.externalContext
private

◆ facesContext

FacesContext org.xdi.oxauth.uma.service.UmaGatherer.facesContext
private

◆ facesService

FacesService org.xdi.oxauth.uma.service.UmaGatherer.facesService
private

◆ languageBean

LanguageBean org.xdi.oxauth.uma.service.UmaGatherer.languageBean
private

◆ log

Logger org.xdi.oxauth.uma.service.UmaGatherer.log
private

◆ pageClaims

final Map<String, String> org.xdi.oxauth.uma.service.UmaGatherer.pageClaims = new HashMap<String, String>()
private

◆ umaPctService

UmaPctService org.xdi.oxauth.uma.service.UmaGatherer.umaPctService
private

◆ umaPermissionService

UmaPermissionService org.xdi.oxauth.uma.service.UmaGatherer.umaPermissionService
private

◆ umaSessionService

UmaSessionService org.xdi.oxauth.uma.service.UmaGatherer.umaSessionService
private

◆ userService

UserService org.xdi.oxauth.uma.service.UmaGatherer.userService
private

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