[ 
https://issues.apache.org/jira/browse/CXF-5226?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13752581#comment-13752581
 ] 

Sergey Beryozkin commented on CXF-5226:
---------------------------------------

See also https://issues.apache.org/jira/browse/CXF-5239
                
> OAuth public clients don't appear to work in RedirectionGrantServices
> ---------------------------------------------------------------------
>
>                 Key: CXF-5226
>                 URL: https://issues.apache.org/jira/browse/CXF-5226
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS Security
>    Affects Versions: 2.7.6
>            Reporter: Diarmuid Power
>            Assignee: Sergey Beryozkin
>             Fix For: 3.0.0, 2.6.10, 2.7.7
>
>
> I believe there is an issue when using a redirect grant service using a 
> public client.
> My concern is the negation in front of the _canSupportPublicClient_ which 
> passes this value to the _OAuthUtils.isGrantSupportedForClient_ as if it had 
> not been negated.
> {code}
> if (!OAuthUtils.isGrantSupportedForClient(client, 
> !canSupportPublicClient(client), supportedGrantType)) {
>     return createErrorResponse(params, redirectUri, 
> OAuthConstants.UNAUTHORIZED_CLIENT);
> {code}
> org.apache.cxf.rs.security.oauth2.services.startAuthorization()
> This method then checks for a logical condition like, is public client and 
> provider cannot support public clients. Instead, the logic of the condition 
> reads, if public client and provider can support public client, then throw 
> exception.
> {code}
> public static boolean isGrantSupportedForClient(Client client, boolean 
> canSupportPublicClients, String grantType) {
>       if (!client.isConfidential() && !canSupportPublicClients) {
>             return false;
> {code}
> org.apache.cxf.rs.security.oauth2.utils.OAuthUtils.isGrantSupportedForClient()
> So believe this to be a bug and I wanted to submit this for your 
> consideration.
> Another note is that AccessTokenService approaches this differently and 
> doesn't seem to start with a negation:
> {code}
>  if (!OAuthUtils.isGrantSupportedForClient(client, 
> isCanSupportPublicClients(), params.getFirst(OAuthConstants.GRANT_TYPE))) {
>     return createErrorResponse(params, OAuthConstants.UNAUTHORIZED_CLIENT);
> {code}
> org.apache.cxf.rs.security.oauth2.services.AccessTokenService.handleTokenRequest()
> P.S. First time logging an issue so apologies if I filled out any fields 
> incorrectly.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to