/** * Perform a remote setProperty on the Session using the remote Service URL. * * <p>{@inheritDoc} */ public void setProperty(Session session, String name, String value) throws SessionException { if (debug.messageEnabled()) { debug.message(MessageFormat.format("Remote setProperty {0} {1}={2}", session, name, value)); } SessionID sessionID = session.getID(); SessionRequest sreq = new SessionRequest(SessionRequest.SetProperty, sessionID.toString(), false); sreq.setPropertyName(name); sreq.setPropertyValue(value); if (SystemProperties.isServerMode() && InternalSession.isProtectedProperty(name)) { try { SSOToken admSSOToken = SessionUtils.getAdminToken(); sreq.setRequester(RestrictedTokenContext.marshal(admSSOToken)); } catch (SSOException e) { throw new SessionException(e); } catch (Exception e) { throw new SessionException(e); } if (debug.messageEnabled()) { debug.message( "Session.setProperty: " + "added admSSOToken in sreq to set " + "externalProtectedProperty in remote server"); } } requests.sendRequestWithRetry(session.getSessionServiceURL(), sreq, session); }
@Override public List<Entitlement> evaluate( final Subject adminSubject, final String realm, final Subject subject, final String applicationName, final String resourceName, final Set<String> actionNames, final Map<String, Set<String>> environment, final boolean recursive, final Object context) throws EntitlementException { List<Entitlement> results = null; try { results = (List<Entitlement>) RestrictedTokenContext.doUsing( context, new RestrictedTokenAction() { public Object run() throws Exception { return internalEvaluate( adminSubject, realm, subject, applicationName, resourceName, actionNames, environment, recursive); } }); } catch (Exception ex) { // exception } return results; }