/** * Write a {@code StatusType} to stream * * @param status * @param out * @throws ProcessingException */ public void write(StatusType status) throws ProcessingException { StaxUtil.writeStartElement(writer, PROTOCOL_PREFIX, JBossSAMLConstants.STATUS.get(), PROTOCOL_NSURI.get()); StatusCodeType statusCodeType = status.getStatusCode(); write(statusCodeType); String statusMessage = status.getStatusMessage(); if (StringUtil.isNotNull(statusMessage)) { StaxUtil.writeStartElement(writer, PROTOCOL_PREFIX, JBossSAMLConstants.STATUS_MESSAGE.get(), PROTOCOL_NSURI.get()); StaxUtil.writeEndElement(writer); } StatusDetailType statusDetail = status.getStatusDetail(); if (statusDetail != null) write(statusDetail); StaxUtil.writeEndElement(writer); StaxUtil.flush(writer); }
/** * Create a StatusType given the status code uri * @param statusCodeURI * @return */ public static StatusType createStatusType(String statusCodeURI) { StatusCodeType sct = new StatusCodeType(); sct.setValue(URI.create(statusCodeURI)); StatusType statusType = new StatusType(); statusType.setStatusCode(sct); return statusType; }
public void handleStatusResponseType(SAML2HandlerRequest request, SAML2HandlerResponse response) throws ProcessingException { //Handler a log out response from IDP StatusResponseType statusResponseType = (StatusResponseType) request.getSAML2Object(); HTTPContext httpContext = (HTTPContext) request.getContext(); HttpServletRequest servletRequest = httpContext.getRequest(); HttpSession session = servletRequest.getSession(false); //TODO: Deal with partial logout report StatusType statusType = statusResponseType.getStatus(); StatusCodeType statusCode = statusType.getStatusCode(); StatusCodeType secondLevelstatusCode = statusCode.getStatusCode(); if (secondLevelstatusCode.getValue().toString().equals(JBossSAMLURIConstants.STATUS_SUCCESS.get())) { //we are successfully logged out session.invalidate(); } }
StaxParserUtil.validate(startElement, STATUS); StatusType status = new StatusType(); statusCode.setValue(URI.create(StaxParserUtil.getAttributeValue(valueAttr))); status.setStatusCode(statusCode); if (startElement == null) break; status.setStatusMessage(StaxParserUtil.getElementText(xmlEventReader)); StatusDetailType statusDetailType = new StatusDetailType(); statusDetailType.addStatusDetail(domElement); status.setStatusDetail(statusDetailType);
public StatusResponseType createStatusResponse(RequestAbstractType request, String statusCode, String statusMessage) { ObjectFactory objectFactory = new ObjectFactory(); org.picketlink.identity.federation.saml.v2.assertion.ObjectFactory assertionObjectFactory = new org.picketlink.identity.federation.saml.v2.assertion.ObjectFactory(); StatusResponseType response = objectFactory.createStatusResponseType(); response.setID(generateId()); response.setIssueInstant(generateIssueInstant()); NameIDType issuer = assertionObjectFactory.createNameIDType(); issuer.setValue(serviceProvider.getSamlConfiguration().getEntityId()); response.setIssuer(issuer); response.setVersion(JBossSAMLConstants.VERSION_2_0.get()); response.setInResponseTo(request.getID()); StatusCodeType statusCodeJaxb = objectFactory.createStatusCodeType(); statusCodeJaxb.setValue(statusCode); StatusType statusType = objectFactory.createStatusType(); statusType.setStatusCode(statusCodeJaxb); if (statusMessage != null) { statusType.setStatusMessage(statusMessage); } response.setStatus(statusType); return response; }
public void handleStatusResponseType(SAML2HandlerRequest request, SAML2HandlerResponse response) throws ProcessingException { //Handler a log out response from IDP StatusResponseType statusResponseType = (StatusResponseType) request.getSAML2Object(); HTTPContext httpContext = (HTTPContext) request.getContext(); HttpServletRequest servletRequest = httpContext.getRequest(); HttpSession session = servletRequest.getSession(false); //TODO: Deal with partial logout report StatusType statusType = statusResponseType.getStatus(); StatusCodeType statusCode = statusType.getStatusCode(); StatusCodeType secondLevelstatusCode = statusCode.getStatusCode(); if (secondLevelstatusCode.getValue().toString().equals(JBossSAMLURIConstants.STATUS_SUCCESS.get())) { //we are successfully logged out session.invalidate(); } }
StaxParserUtil.validate(startElement, STATUS); StatusType status = new StatusType(); statusCode.setValue(URI.create(StaxParserUtil.getAttributeValue(valueAttr))); status.setStatusCode(statusCode); if (startElement == null) break; status.setStatusMessage(StaxParserUtil.getElementText(xmlEventReader)); StatusDetailType statusDetailType = new StatusDetailType(); statusDetailType.addStatusDetail(domElement); status.setStatusDetail(statusDetailType);
/** * Create a StatusType given the status code uri * * @param statusCodeURI * * @return */ public static StatusType createStatusType(String statusCodeURI) { StatusCodeType sct = new StatusCodeType(); sct.setValue(URI.create(statusCodeURI)); StatusType statusType = new StatusType(); statusType.setStatusCode(sct); return statusType; }
/** * Write a {@code StatusType} to stream * * @param status * @param out * * @throws ProcessingException */ public void write(StatusType status) throws ProcessingException { StaxUtil.writeStartElement(writer, PROTOCOL_PREFIX, JBossSAMLConstants.STATUS.get(), PROTOCOL_NSURI.get()); StatusCodeType statusCodeType = status.getStatusCode(); write(statusCodeType); String statusMessage = status.getStatusMessage(); if (StringUtil.isNotNull(statusMessage)) { StaxUtil.writeStartElement(writer, PROTOCOL_PREFIX, JBossSAMLConstants.STATUS_MESSAGE.get(), PROTOCOL_NSURI.get()); StaxUtil.writeEndElement(writer); } StatusDetailType statusDetail = status.getStatusDetail(); if (statusDetail != null) write(statusDetail); StaxUtil.writeEndElement(writer); StaxUtil.flush(writer); }
public void handleStatusResponseType(SAML2HandlerRequest request, SAML2HandlerResponse response) throws ProcessingException { // Handler a log out response from IDP StatusResponseType statusResponseType = (StatusResponseType) request.getSAML2Object(); HTTPContext httpContext = (HTTPContext) request.getContext(); HttpServletRequest servletRequest = httpContext.getRequest(); HttpSession session = servletRequest.getSession(false); // TODO: Deal with partial logout report StatusType statusType = statusResponseType.getStatus(); StatusCodeType statusCode = statusType.getStatusCode(); URI statusCodeValueURI = statusCode.getValue(); boolean success = false; if(statusCodeValueURI != null){ String statusCodeValue = statusCodeValueURI.toString(); if(JBossSAMLURIConstants.STATUS_SUCCESS.get().equals(statusCodeValue)){ success = true; } } if(success){ // we are successfully logged out session.invalidate(); } else { StatusCodeType secondLevelstatusCode = statusCode.getStatusCode(); if (secondLevelstatusCode != null && secondLevelstatusCode.getValue().toString().equals(JBossSAMLURIConstants.STATUS_SUCCESS.get())) { // we are successfully logged out session.invalidate(); } } }
StaxParserUtil.validate(startElement, STATUS); StatusType status = new StatusType(); statusCode.setValue(URI.create(StaxParserUtil.getAttributeValue(valueAttr))); status.setStatusCode(statusCode); if (startElement == null) break; status.setStatusMessage(StaxParserUtil.getElementText(xmlEventReader)); StatusDetailType statusDetailType = new StatusDetailType(); statusDetailType.addStatusDetail(domElement); status.setStatusDetail(statusDetailType);
/** * Create a StatusType given the status code uri * @param statusCodeURI * @return */ public static StatusType createStatusType(String statusCodeURI) { StatusCodeType sct = new StatusCodeType(); sct.setValue(URI.create(statusCodeURI)); StatusType statusType = new StatusType(); statusType.setStatusCode(sct); return statusType; }
/** * Write a {@code StatusType} to stream * * @param status * @param out * * @throws ProcessingException */ public void write(StatusType status) throws ProcessingException { StaxUtil.writeStartElement(writer, PROTOCOL_PREFIX, JBossSAMLConstants.STATUS.get(), PROTOCOL_NSURI.get()); StatusCodeType statusCodeType = status.getStatusCode(); write(statusCodeType); String statusMessage = status.getStatusMessage(); if (StringUtil.isNotNull(statusMessage)) { StaxUtil.writeStartElement(writer, PROTOCOL_PREFIX, JBossSAMLConstants.STATUS_MESSAGE.get(), PROTOCOL_NSURI.get()); StaxUtil.writeEndElement(writer); } StatusDetailType statusDetail = status.getStatusDetail(); if (statusDetail != null) write(statusDetail); StaxUtil.writeEndElement(writer); StaxUtil.flush(writer); }
public void processIDPResponse(HttpServletRequest httpRequest, HttpServletResponse httpResponse, StatusResponseType response, RequestContext requestContext, SamlIdentityProvider idp) { if (response.getStatus() != null && response.getStatus().getStatusCode().getValue().equals(JBossSAMLURIConstants.STATUS_SUCCESS.get())) { Identity.instance().logout(); } else { throw new RuntimeException("Single logout failed. Status code: " + (response.getStatus() == null ? "null" : response.getStatus().getStatusCode().getValue())); } try { httpResponse.sendRedirect(serviceProvider.getLoggedOutUrl()); } catch (IOException e) { throw new RuntimeException(e); } } }
/** * Create a StatusType given the status code uri * * @param statusCodeURI * @return */ public static StatusType createStatusType(String statusCodeURI) { StatusCodeType sct = new StatusCodeType(); sct.setValue(URI.create(statusCodeURI)); StatusType statusType = new StatusType(); statusType.setStatusCode(sct); return statusType; }
/** * Write a {@code StatusType} to stream * @param status * @param out * @throws ProcessingException */ public void write(StatusType status) throws ProcessingException { StaxUtil.writeStartElement(writer, PROTOCOL_PREFIX, JBossSAMLConstants.STATUS.get(), PROTOCOL_NSURI.get()); StatusCodeType statusCodeType = status.getStatusCode(); write(statusCodeType); String statusMessage = status.getStatusMessage(); if (StringUtil.isNotNull(statusMessage)) { StaxUtil.writeStartElement(writer, PROTOCOL_PREFIX, JBossSAMLConstants.STATUS_MESSAGE.get(), PROTOCOL_NSURI.get()); StaxUtil.writeEndElement(writer); } StatusDetailType statusDetail = status.getStatusDetail(); if (statusDetail != null) write(statusDetail); StaxUtil.writeEndElement(writer); StaxUtil.flush(writer); }
public void handleStatusResponseType(SAML2HandlerRequest request, SAML2HandlerResponse response) throws ProcessingException { // Handler a log out response from IDP StatusResponseType statusResponseType = (StatusResponseType) request.getSAML2Object(); checkDestination(statusResponseType.getDestination(), getSPConfiguration().getServiceURL()); HTTPContext httpContext = (HTTPContext) request.getContext(); HttpServletRequest servletRequest = httpContext.getRequest(); HttpSession session = servletRequest.getSession(false); // TODO: Deal with partial logout report StatusType statusType = statusResponseType.getStatus(); StatusCodeType statusCode = statusType.getStatusCode(); URI statusCodeValueURI = statusCode.getValue(); boolean success = false; if (statusCodeValueURI != null) { String statusCodeValue = statusCodeValueURI.toString(); if (JBossSAMLURIConstants.STATUS_SUCCESS.get().equals(statusCodeValue)) { success = true; session.invalidate(); } } }
/** * Create a StatusType given the status code uri * * @param statusCodeURI * * @return */ public static StatusType createStatusType(String statusCodeURI) { StatusCodeType sct = new StatusCodeType(); sct.setValue(URI.create(statusCodeURI)); StatusType statusType = new StatusType(); statusType.setStatusCode(sct); return statusType; }
/** * Write a {@code StatusType} to stream * @param status * @param out * @throws ProcessingException */ public void write(StatusType status) throws ProcessingException { StaxUtil.writeStartElement(writer, PROTOCOL_PREFIX, JBossSAMLConstants.STATUS.get(), PROTOCOL_NSURI.get()); StatusCodeType statusCodeType = status.getStatusCode(); write(statusCodeType); String statusMessage = status.getStatusMessage(); if (StringUtil.isNotNull(statusMessage)) { StaxUtil.writeStartElement(writer, PROTOCOL_PREFIX, JBossSAMLConstants.STATUS_MESSAGE.get(), PROTOCOL_NSURI.get()); StaxUtil.writeEndElement(writer); } StatusDetailType statusDetail = status.getStatusDetail(); if (statusDetail != null) write(statusDetail); StaxUtil.writeEndElement(writer); StaxUtil.flush(writer); }
public void handleStatusResponseType(SAML2HandlerRequest request, SAML2HandlerResponse response) throws ProcessingException { // Handler a log out response from IDP StatusResponseType statusResponseType = (StatusResponseType) request.getSAML2Object(); checkDestination(statusResponseType.getDestination(), getSPConfiguration().getServiceURL()); HTTPContext httpContext = (HTTPContext) request.getContext(); HttpServletRequest servletRequest = httpContext.getRequest(); HttpSession session = servletRequest.getSession(false); // TODO: Deal with partial logout report StatusType statusType = statusResponseType.getStatus(); StatusCodeType statusCode = statusType.getStatusCode(); URI statusCodeValueURI = statusCode.getValue(); boolean success = false; if (statusCodeValueURI != null) { String statusCodeValue = statusCodeValueURI.toString(); if (JBossSAMLURIConstants.STATUS_SUCCESS.get().equals(statusCodeValue)) { success = true; session.invalidate(); } } }