[
https://issues.apache.org/jira/browse/FEDIZ-72?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13922189#comment-13922189
]
Oliver Wulff commented on FEDIZ-72:
-----------------------------------
Got a pluggable version running locally... will commit soon.
Some slight changes to the interfaces:
{code}
public interface ProtocolHandler {
String getProtocol();
}
public interface TrustedIdpProtocolHandler extends ProtocolHandler {
boolean canHandleRequest(HttpServletRequest request);
// Only supports HTTP GET SignIn Requests
URL mapSignInRequest(RequestContext context, Idp idp, TrustedIdp
trustedIdp);
//Hook in <action-state id="validateToken"> of
federation-signin-response.xml
SecurityToken mapSignInResponse(RequestContext context, Idp idp, TrustedIdp
trustedIdp);
}
{code}
It's also planned to support custom application protocols which extends
ProtocolHandler also.
> Make Trusted IDP protocol customizable
> --------------------------------------
>
> Key: FEDIZ-72
> URL: https://issues.apache.org/jira/browse/FEDIZ-72
> Project: CXF-Fediz
> Issue Type: Improvement
> Components: IDP
> Affects Versions: 1.1.0
> Reporter: Oliver Wulff
> Assignee: Oliver Wulff
>
> In release 1.1, the Fediz IDP doesn't support other protocols than
> WS-Federation for a Trusted IDP. Due to the usage of Spring Web Flow, the
> flow can still be customized but it has a bigger impact and later migration
> to new release require more effort.
> This is a proposal to add support for custom protocols for Trusted IDPs:
> - Introduce Interface "SSOProtocolBridge" which is able to transform a
> WS-Federation SignIn Request to another SignIn Request (ex. SAML-P
> AuthRequest) and to transform another SignIn Response (ex. SAML-P
> AuthResponse) to a WS-Federation SignIn Response.
> - Processing logic is part of the main IDP web flow which chooses a protocol
> depending on the configuration of the TrustedIdp
> - New protocol implementations can be found due to spring annotations
> scanning and injecting the beans in the core processing logic
> {code}
> public interface SSOProtocolBridge {
>
> boolean canHandleRequest(HttpServletRequest request);
> String getProtocol();
> // ActionState before redirectToTrustedIDP end-state to define SignIn URL
> // Note: Only supports HTTP GET SignIn Requests
> URL mapSignInRequest(RequestContext context);
>
> // Hook in <action-state id="validateToken"> of
> federation-signin-response.xml
> // ValidateTokenAction class delegates to an implementation of
> mapSignInResponse() according to the current protocol in the conversation
> SecurityToken mapSignInResponse(RequestContext context);
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)