mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-21 18:09:20 +00:00
ALF-11550: Added service provider's redirect URL into JSON response from channels.POST and channel-reauth.POST webscripts. Adjusted the ChannelType interface as necessary to make this possible.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@32575 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
<dt>channelId</dt><dd>the identifier of the publishing channel</dd>
|
<dt>channelId</dt><dd>the identifier of the publishing channel</dd>
|
||||||
<dt>authoriseUrl</dt> <dd>The URL to send the user to in order for them to authorise access to the channel</dd>
|
<dt>authoriseUrl</dt> <dd>The URL to send the user to in order for them to authorise access to the channel</dd>
|
||||||
<dt>authCallbackUrl</dt> <dd>The URL to return the channel authorisation details to</dd>
|
<dt>authCallbackUrl</dt> <dd>The URL to return the channel authorisation details to</dd>
|
||||||
|
<dt>authRedirectUrl</dt> <dd>The URL that the channel service provider will try to redirect the user to</dd>
|
||||||
</dl>
|
</dl>
|
||||||
]]></description>
|
]]></description>
|
||||||
<url>/api/publishing/channels/{store_protocol}/{store_id}/{node_id}/reauthorise</url>
|
<url>/api/publishing/channels/{store_protocol}/{store_id}/{node_id}/reauthorise</url>
|
||||||
@@ -47,6 +48,7 @@
|
|||||||
"channelId": string,
|
"channelId": string,
|
||||||
"authoriseUrl": string
|
"authoriseUrl": string
|
||||||
"authCallbackUrl": string
|
"authCallbackUrl": string
|
||||||
|
"authRedirectUrl": string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]]>
|
]]>
|
||||||
|
@@ -15,6 +15,7 @@
|
|||||||
<dt>pollUrl</dt> <dd>The URL to poll to discover whether the channel has been authorised</dd>
|
<dt>pollUrl</dt> <dd>The URL to poll to discover whether the channel has been authorised</dd>
|
||||||
<dt>authoriseUrl</dt> <dd>The URL to send the user to in order for them to authorise access to the channel</dd>
|
<dt>authoriseUrl</dt> <dd>The URL to send the user to in order for them to authorise access to the channel</dd>
|
||||||
<dt>authCallbackUrl</dt> <dd>The URL to return the channel authorisation details to</dd>
|
<dt>authCallbackUrl</dt> <dd>The URL to return the channel authorisation details to</dd>
|
||||||
|
<dt>authRedirectUrl</dt> <dd>The URL to which the channel service provider will redirect the user upon authorisation</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
]]></description>
|
]]></description>
|
||||||
@@ -49,6 +50,7 @@
|
|||||||
"channelId": string,
|
"channelId": string,
|
||||||
"authoriseUrl": string
|
"authoriseUrl": string
|
||||||
"authCallbackUrl": string
|
"authCallbackUrl": string
|
||||||
|
"authRedirectUrl": string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]]>
|
]]>
|
||||||
|
@@ -153,6 +153,7 @@
|
|||||||
"channelId" : "${channelId}",
|
"channelId" : "${channelId}",
|
||||||
"authoriseUrl": "${authoriseUrl}",
|
"authoriseUrl": "${authoriseUrl}",
|
||||||
"authCallbackUrl": "${authCallbackUrl}"
|
"authCallbackUrl": "${authCallbackUrl}"
|
||||||
|
"authRedirectUrl": "${authRedirectUrl}"
|
||||||
}
|
}
|
||||||
</#escape>
|
</#escape>
|
||||||
</#macro>
|
</#macro>
|
||||||
|
@@ -90,7 +90,7 @@ public class AuthCallbackWebScript extends DeclarativeWebScript
|
|||||||
|
|
||||||
if (ChannelType.AuthStatus.RETRY.equals(authStatus))
|
if (ChannelType.AuthStatus.RETRY.equals(authStatus))
|
||||||
{
|
{
|
||||||
String authoriseUrl = channel.getChannelType().getAuthorisationUrl(channel, channelAuthHelper.getAuthoriseCallbackUrl(channelNodeRef));
|
String authoriseUrl = channel.getChannelType().getAuthorisationUrls(channel, channelAuthHelper.getAuthoriseCallbackUrl(channelNodeRef));
|
||||||
if (authoriseUrl == null)
|
if (authoriseUrl == null)
|
||||||
{
|
{
|
||||||
authoriseUrl = channelAuthHelper.getDefaultAuthoriseUrl(channelNodeRef);
|
authoriseUrl = channelAuthHelper.getDefaultAuthoriseUrl(channelNodeRef);
|
||||||
|
@@ -23,6 +23,7 @@ import java.util.TreeMap;
|
|||||||
|
|
||||||
import org.alfresco.repo.admin.SysAdminParams;
|
import org.alfresco.repo.admin.SysAdminParams;
|
||||||
import org.alfresco.service.cmr.publishing.channels.Channel;
|
import org.alfresco.service.cmr.publishing.channels.Channel;
|
||||||
|
import org.alfresco.service.cmr.publishing.channels.ChannelType;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.util.UrlUtil;
|
import org.alfresco.util.UrlUtil;
|
||||||
|
|
||||||
@@ -71,8 +72,9 @@ public class ChannelAuthHelper
|
|||||||
|
|
||||||
public Map<String, Object> buildAuthorisationModel(Channel channel)
|
public Map<String, Object> buildAuthorisationModel(Channel channel)
|
||||||
{
|
{
|
||||||
String callbackUrl = getAuthoriseCallbackUrl(channel.getNodeRef());
|
String alfrescoCallbackUrl = getAuthoriseCallbackUrl(channel.getNodeRef());
|
||||||
String authoriseUrl = channel.getChannelType().getAuthorisationUrl(channel, callbackUrl);
|
ChannelType.AuthUrlPair authUrlPair = channel.getChannelType().getAuthorisationUrls(channel, alfrescoCallbackUrl);
|
||||||
|
String authoriseUrl = authUrlPair.authorisationRequestUrl;
|
||||||
if (authoriseUrl == null)
|
if (authoriseUrl == null)
|
||||||
{
|
{
|
||||||
// If a channel type returns null as the authorise URL then we
|
// If a channel type returns null as the authorise URL then we
|
||||||
@@ -84,7 +86,8 @@ public class ChannelAuthHelper
|
|||||||
Map<String, Object> model = new TreeMap<String, Object>();
|
Map<String, Object> model = new TreeMap<String, Object>();
|
||||||
model.put("authoriseUrl", authoriseUrl);
|
model.put("authoriseUrl", authoriseUrl);
|
||||||
model.put("channelId", channel.getId());
|
model.put("channelId", channel.getId());
|
||||||
model.put("authCallbackUrl", callbackUrl);
|
model.put("authCallbackUrl", alfrescoCallbackUrl);
|
||||||
|
model.put("authRedirectUrl", authUrlPair.authorisationRedirectUrl);
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user