本文整理汇总了Java中org.opensaml.saml2.core.SessionIndex类的典型用法代码示例。如果您正苦于以下问题:Java SessionIndex类的具体用法?Java SessionIndex怎么用?Java SessionIndex使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
SessionIndex类属于org.opensaml.saml2.core包,在下文中一共展示了SessionIndex类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: processChildElement
import org.opensaml.saml2.core.SessionIndex; //导入依赖的package包/类
/** {@inheritDoc} */
protected void processChildElement(XMLObject parentSAMLObject, XMLObject childSAMLObject)
throws UnmarshallingException {
LogoutRequest req = (LogoutRequest) parentSAMLObject;
if (childSAMLObject instanceof BaseID) {
req.setBaseID((BaseID) childSAMLObject);
} else if (childSAMLObject instanceof NameID) {
req.setNameID((NameID) childSAMLObject);
} else if (childSAMLObject instanceof EncryptedID) {
req.setEncryptedID((EncryptedID) childSAMLObject);
} else if (childSAMLObject instanceof SessionIndex) {
req.getSessionIndexes().add((SessionIndex) childSAMLObject);
} else {
super.processChildElement(parentSAMLObject, childSAMLObject);
}
}
示例2: handleSingleLogoutRequest
import org.opensaml.saml2.core.SessionIndex; //导入依赖的package包/类
/**
* This method is used to handle the single logout requests sent by the Identity Provider
*
* @param req Corresponding HttpServletRequest
* @param resp Corresponding HttpServletResponse
*/
private void handleSingleLogoutRequest(HttpServletRequest req, HttpServletResponse resp) {
String logoutReqStr = req.getParameter(SAML2SSOAuthenticatorConstants.HTTP_POST_PARAM_SAML2_AUTH_REQ);
XMLObject samlObject = null;
try {
samlObject = Util.unmarshall(Util.decode(logoutReqStr));
} catch (SAML2SSOUIAuthenticatorException e) {
log.error("Error handling the single logout request", e);
}
if (samlObject instanceof LogoutRequest) {
LogoutRequest logoutRequest = (LogoutRequest) samlObject;
// There can be only one session index entry.
List<SessionIndex> sessionIndexList = logoutRequest.getSessionIndexes();
if (sessionIndexList.size() > 0) {
SSOSessionManager.getInstance().handleLogout(
sessionIndexList.get(0).getSessionIndex());
}
}
}
示例3: buildLogoutRequest
import org.opensaml.saml2.core.SessionIndex; //导入依赖的package包/类
protected LogoutRequest buildLogoutRequest(String user, String sessionIdx) throws SSOAgentException {
LogoutRequest logoutReq = new LogoutRequestBuilder().buildObject();
logoutReq.setID(SSOAgentUtils.createID());
logoutReq.setDestination(ssoAgentConfig.getSAML2().getIdPURL());
DateTime issueInstant = new DateTime();
logoutReq.setIssueInstant(issueInstant);
logoutReq.setNotOnOrAfter(new DateTime(issueInstant.getMillis() + 5 * 60 * 1000));
IssuerBuilder issuerBuilder = new IssuerBuilder();
Issuer issuer = issuerBuilder.buildObject();
issuer.setValue(ssoAgentConfig.getSAML2().getSPEntityId());
logoutReq.setIssuer(issuer);
NameID nameId = new NameIDBuilder().buildObject();
nameId.setFormat("urn:oasis:names:tc:SAML:2.0:nameid-format:entity");
nameId.setValue(user);
logoutReq.setNameID(nameId);
SessionIndex sessionIndex = new SessionIndexBuilder().buildObject();
sessionIndex.setSessionIndex(sessionIdx);
logoutReq.getSessionIndexes().add(sessionIndex);
logoutReq.setReason("Single Logout");
return logoutReq;
}
示例4: testChildElementsMarshall
import org.opensaml.saml2.core.SessionIndex; //导入依赖的package包/类
/** {@inheritDoc} */
public void testChildElementsMarshall() {
QName qname = new QName(SAMLConstants.SAML20P_NS, LogoutRequest.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
LogoutRequest req = (LogoutRequest) buildXMLObject(qname);
super.populateChildElements(req);
QName nameIDQName = new QName(SAMLConstants.SAML20_NS, NameID.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
req.setNameID((NameID) buildXMLObject(nameIDQName));
QName sessionIndexQName = new QName(SAMLConstants.SAML20P_NS, SessionIndex.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
for (int i=0; i<expectedNumSessionIndexes; i++){
req.getSessionIndexes().add((SessionIndex) buildXMLObject(sessionIndexQName));
}
assertEquals(expectedChildElementsDOM, req);
}
示例5: process
import org.opensaml.saml2.core.SessionIndex; //导入依赖的package包/类
@Override
protected void process() throws SamlProcessingException, SamlSecurityException, UnsupportedSamlOperation {
final LogoutRequest sloRequest = this.getOpenSamlObject();
final ISaml20SpProcessor spProcessor = this.getSpProcessor();
// Logout from SP
final List<SessionIndex> sessionIndexes = sloRequest.getSessionIndexes();
if (!CollectionUtils.isEmpty(sessionIndexes)) {
for (final SessionIndex sessionIndex : sessionIndexes) {
spProcessor.logout(sessionIndex.getSessionIndex());
}
}
// Send SLO Response
try {
final SamlBindingEnum binding = SamlBindingEnum.SAML_20_HTTP_POST;
final ISaml20IdpConnector idpConnector = this.findIdpConnector(sloRequest.getIssuer());
final IOutgoingSaml sloResponseRequest = this.buildOutgoingSloResponse(sloRequest, binding, idpConnector);
this.sendSloResponse(binding, sloResponseRequest);
} catch (final SamlBuildingException e) {
throw new SamlProcessingException("Unable to build SLO Response to send back to the IdP !", e);
}
}
示例6: createLogoutRequest
import org.opensaml.saml2.core.SessionIndex; //导入依赖的package包/类
@SuppressWarnings("unchecked")
public LogoutRequest createLogoutRequest(Response resp) {
LogoutRequest lr = ((SAMLObjectBuilder<LogoutRequest>)
_bf.getBuilder(LogoutRequest.DEFAULT_ELEMENT_NAME)).buildObject();
String uid = UUID.randomUUID().toString();
lr.setID(uid);
lr.setIssueInstant(new DateTime());
lr.setVersion(SAMLVersion.VERSION_20);
lr.setIssuer(getIssuer());
// Get NameID and SessionIndex from first assertion from
// Authentication Response object
Assertion asr = resp.getAssertions().get(0);
NameID nid = ((SAMLObjectBuilder<NameID>)
_bf.getBuilder(NameID.DEFAULT_ELEMENT_NAME)).buildObject();
nid.setValue(asr.getSubject().getNameID().getValue());
lr.setNameID(nid);
// Set session index(es)
List<AuthnStatement> ausl = asr.getAuthnStatements();
if (ausl != null) {
for (AuthnStatement aus :ausl) {
SessionIndex sindex = ((SAMLObjectBuilder<SessionIndex>)
_bf.getBuilder(SessionIndex.DEFAULT_ELEMENT_NAME)).buildObject();
sindex.setSessionIndex(aus.getSessionIndex());
lr.getSessionIndexes().add(sindex);
}
}
return lr;
}
示例7: buildLogoutRequest
import org.opensaml.saml2.core.SessionIndex; //导入依赖的package包/类
/**
* Generate a new LogoutRequest.
*
* @param session The session containing the active assertion.
* @param logoutServiceLocation Destination for the logout request.
* @param issuerEntityId Entity ID of the issuing entity.
*/
@SuppressWarnings("deprecation")
public static OIOLogoutRequest buildLogoutRequest(HttpSession session, String logoutServiceLocation, String issuerEntityId, SessionHandler handler) {
LogoutRequest logoutRequest = new LogoutRequestBuilder().buildObject();
logoutRequest.setID(Utils.generateUUID());
logoutRequest.setIssueInstant(new DateTime(DateTimeZone.UTC));
logoutRequest.addNamespace(OIOSAMLConstants.SAML20_NAMESPACE);
logoutRequest.setDestination(logoutServiceLocation);
logoutRequest.setReason("urn:oasis:names:tc:SAML:2.0:logout:user");
logoutRequest.setIssuer(SAMLUtil.createIssuer(issuerEntityId));
OIOAssertion assertion = handler.getAssertion(session.getId());
if (assertion != null) {
NameID nameID = SAMLUtil.createNameID(assertion.getSubjectNameIDValue());
nameID.setFormat(assertion.getAssertion().getSubject().getNameID().getFormat());
logoutRequest.setNameID(nameID);
SessionIndex sessionIndex = new SessionIndexBuilder().buildObject();
logoutRequest.getSessionIndexes().add(sessionIndex);
sessionIndex.setSessionIndex(assertion.getSessionIndex());
}
try {
if (log.isDebugEnabled()) {
log.debug("Validate the logoutRequest...");
}
logoutRequest.validate(true);
if (log.isDebugEnabled()) {
log.debug("...OK");
}
} catch (ValidationException e) {
throw new WrappedException(Layer.CLIENT, e);
}
return new OIOLogoutRequest(logoutRequest);
}
示例8: buildLogoutRequest
import org.opensaml.saml2.core.SessionIndex; //导入依赖的package包/类
/**
* Build the logout request
*
* @param subject name of the user
* @param reason reason for generating logout request.
* @return LogoutRequest object
* @throws Exception
*/
public LogoutRequest buildLogoutRequest(String subject, String reason, String sessionIndexStr) throws Exception {
log.info("Building logout request");
Util.doBootstrap();
LogoutRequest logoutReq = new org.opensaml.saml2.core.impl.LogoutRequestBuilder().buildObject();
logoutReq.setID(Util.createID());
logoutReq.setDestination(Util.getIdentityProviderSSOServiceURL());
DateTime issueInstant = new DateTime();
logoutReq.setIssueInstant(issueInstant);
logoutReq.setNotOnOrAfter(new DateTime(issueInstant.getMillis() + 5 * 60 * 1000));
IssuerBuilder issuerBuilder = new IssuerBuilder();
Issuer issuer = issuerBuilder.buildObject();
issuer.setValue(Util.getServiceProviderId());
logoutReq.setIssuer(issuer);
NameID nameId = new NameIDBuilder().buildObject();
nameId.setFormat(SAML2SSOAuthenticatorConstants.SAML2_NAME_ID_POLICY_TRANSIENT);
nameId.setValue(subject);
logoutReq.setNameID(nameId);
SessionIndex sessionIndex = new SessionIndexBuilder().buildObject();
sessionIndex.setSessionIndex(sessionIndexStr);
logoutReq.getSessionIndexes().add(sessionIndex);
logoutReq.setReason(reason);
Util.setSignature(logoutReq, XMLSignature.ALGO_ID_SIGNATURE_RSA, new SignKeyDataHolder());
return logoutReq;
}
示例9: marshallElementContent
import org.opensaml.saml2.core.SessionIndex; //导入依赖的package包/类
/** {@inheritDoc} */
protected void marshallElementContent(XMLObject samlObject, Element domElement) throws MarshallingException {
SessionIndex si = (SessionIndex) samlObject;
if (si.getSessionIndex() != null) {
XMLHelper.appendTextContent(domElement, si.getSessionIndex());
}
}
示例10: getSessionIndex
import org.opensaml.saml2.core.SessionIndex; //导入依赖的package包/类
/**
* Get session index for a LogoutRequest.
*
* @return The value. <code>null</code>, if the logout request does not
* contain any session indeces.
*/
public String getSessionIndex() {
String retVal = null;
if (request.getSessionIndexes() != null && request.getSessionIndexes().size() > 0) {
SessionIndex sessionIndexStructure = request.getSessionIndexes().get(0);
retVal = sessionIndexStructure.getSessionIndex();
}
return retVal;
}
示例11: testGetSessionIndex
import org.opensaml.saml2.core.SessionIndex; //导入依赖的package包/类
@Test
public void testGetSessionIndex() {
assertNull(lh.getSessionIndex());
SessionIndex idx = SAMLUtil.createSessionIndex("val");
lr.getSessionIndexes().add(idx);
assertEquals("val", lh.getSessionIndex());
}
示例12: testCreateSessionIndex
import org.opensaml.saml2.core.SessionIndex; //导入依赖的package包/类
@Test
public void testCreateSessionIndex() {
SessionIndex idx = SAMLUtil.createSessionIndex("idx");
assertNotNull(idx);
assertEquals("idx", idx.getSessionIndex());
idx = SAMLUtil.createSessionIndex(null);
assertNull(idx.getSessionIndex());
}
示例13: testSessionIndexFailure
import org.opensaml.saml2.core.SessionIndex; //导入依赖的package包/类
/**
* Tests invalid SessionIndex element content.
*/
public void testSessionIndexFailure() {
SessionIndex si = (SessionIndex) target;
si.setSessionIndex(null);
assertValidationFail("SessionIndex was null");
si.setSessionIndex("");
assertValidationFail("SessionIndex was empty");
si.setSessionIndex(" ");
assertValidationFail("SessionIndex was all whitespace");
}
示例14: testSingleElementMarshall
import org.opensaml.saml2.core.SessionIndex; //导入依赖的package包/类
/** {@inheritDoc} */
public void testSingleElementMarshall() {
QName qname = new QName(SAMLConstants.SAML20P_NS, SessionIndex.DEFAULT_ELEMENT_LOCAL_NAME);
SessionIndex si = (SessionIndex) buildXMLObject(qname);
si.setSessionIndex(expectedSessionIndex);
assertEquals(expectedDOM, si);
}
示例15: buildLogoutRequest
import org.opensaml.saml2.core.SessionIndex; //导入依赖的package包/类
/**
* Build the logout request
* @param subject name of the user
* @param reason reason for generating logout request.
* @return LogoutRequest object
*/
public LogoutRequest buildLogoutRequest(String subject,String sessionIndexId, String reason,
String issuerId) {
Util.doBootstrap();
LogoutRequest logoutReq = new org.opensaml.saml2.core.impl.LogoutRequestBuilder().buildObject();
logoutReq.setID(Util.createID());
DateTime issueInstant = new DateTime();
logoutReq.setIssueInstant(issueInstant);
logoutReq.setNotOnOrAfter(new DateTime(issueInstant.getMillis() + 5 * 60 * 1000));
IssuerBuilder issuerBuilder = new IssuerBuilder();
Issuer issuer = issuerBuilder.buildObject();
issuer.setValue(issuerId);
logoutReq.setIssuer(issuer);
NameID nameId = new NameIDBuilder().buildObject();
nameId.setFormat(SSOConstants.SAML2_NAME_ID_POLICY);
nameId.setValue(subject);
logoutReq.setNameID(nameId);
SessionIndex sessionIndex = new SessionIndexBuilder().buildObject();
sessionIndex.setSessionIndex(sessionIndexId);
logoutReq.getSessionIndexes().add(sessionIndex);
logoutReq.setReason(reason);
return logoutReq;
}