diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2013-05-07 13:59:10 +0200 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2013-05-07 13:59:10 +0200 |
commit | 8ab6d299cbbc2b9faa7f0d70b45e00ce54645e55 (patch) | |
tree | 87ec510c7638ffbd8e474cfb7556fb9ee9753773 /id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVP2XProtocol.java | |
parent | 36a3ddc4e108efc7813b655b74e9919c00c9fd94 (diff) | |
download | moa-id-spss-8ab6d299cbbc2b9faa7f0d70b45e00ce54645e55.tar.gz moa-id-spss-8ab6d299cbbc2b9faa7f0d70b45e00ce54645e55.tar.bz2 moa-id-spss-8ab6d299cbbc2b9faa7f0d70b45e00ce54645e55.zip |
PVP2.X Post and Redirect binding, signing and verification, added PVP2.x Citizen Token attributes
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVP2XProtocol.java')
-rw-r--r-- | id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVP2XProtocol.java | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVP2XProtocol.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVP2XProtocol.java index 847f1ae54..feaf59cb2 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVP2XProtocol.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/PVP2XProtocol.java @@ -14,10 +14,10 @@ import org.apache.commons.lang.StringEscapeUtils; import org.opensaml.common.xml.SAMLConstants; import org.opensaml.saml2.core.AuthnRequest; import org.opensaml.saml2.core.RequestAbstractType; -import org.opensaml.saml2.core.Response; import org.opensaml.saml2.core.Status; import org.opensaml.saml2.core.StatusCode; import org.opensaml.saml2.core.StatusMessage; +import org.opensaml.saml2.core.StatusResponseType; import at.gv.egovernment.moa.id.MOAIDException; import at.gv.egovernment.moa.id.auth.MOAIDAuthConstants; @@ -29,8 +29,8 @@ import at.gv.egovernment.moa.id.moduls.NoPassivAuthenticationException; import at.gv.egovernment.moa.id.moduls.ServletInfo; import at.gv.egovernment.moa.id.moduls.ServletType; import at.gv.egovernment.moa.id.protocols.pvp2x.binding.IDecoder; +import at.gv.egovernment.moa.id.protocols.pvp2x.binding.IEncoder; import at.gv.egovernment.moa.id.protocols.pvp2x.binding.MOARequest; -import at.gv.egovernment.moa.id.protocols.pvp2x.binding.MOAResponse; import at.gv.egovernment.moa.id.protocols.pvp2x.binding.PostBinding; import at.gv.egovernment.moa.id.protocols.pvp2x.binding.RedirectBinding; import at.gv.egovernment.moa.id.protocols.pvp2x.utils.SAML2Utils; @@ -174,8 +174,15 @@ public class PVP2XProtocol implements IModulInfo, MOAIDAuthConstants { } public boolean generateErrorMessage(Throwable e, - HttpServletRequest request, HttpServletResponse response) { - Response samlResponse = SAML2Utils.createSAMLObject(Response.class); + HttpServletRequest request, HttpServletResponse response, + IRequest protocolRequest) throws Throwable { + + if(protocolRequest == null) { + throw e; + } + + StatusResponseType samlResponse = + SAML2Utils.createSAMLObject(StatusResponseType.class); Status status = SAML2Utils.createSAMLObject(Status.class); StatusCode statusCode = SAML2Utils.createSAMLObject(StatusCode.class); StatusMessage statusMessage = SAML2Utils.createSAMLObject(StatusMessage.class); @@ -190,7 +197,10 @@ public class PVP2XProtocol implements IModulInfo, MOAIDAuthConstants { status.setStatusCode(statusCode); status.setStatusMessage(statusMessage); samlResponse.setStatus(status); - return false; + IEncoder encoder = new RedirectBinding(); + + encoder.encodeRespone(request, response, samlResponse, protocolRequest.getOAURL()); + return true; } public IAction getAction(String action) { |