Re: [xwiki-users] OAuth2 Logout

2017-05-05 Thread gfinesch
Yes, now I know that . I had to try either one way or the other and I've
realized that I probably chose the "wrong" one. If I have enough time
and...budget , I'll fix the problem by using the component's way of
customization. 



--
View this message in context: 
http://xwiki.475771.n2.nabble.com/OAuth2-Logout-tp7603692p7603764.html
Sent from the XWiki- Users mailing list archive at Nabble.com.


Re: [xwiki-users] OAuth2 Logout

2017-05-05 Thread Thomas Mortagne
If you are referring to the use of Utils.getComponent it's not exactly
deprecated but discouraged to avoid having people using it in components
but XWikiAuthServiceImpl is still old style so there is not much way around
it right now.

On Fri, May 5, 2017 at 10:11 AM, gfinesch  wrote:

> Thank you for your replies. I was actually trying avoiding the deprecated
> methods used by the OpenId Connect Extension you suggested so I took the
> CAS
> Extension source code as an example and from that I built my code. The
> login
> part runs without errors, the logout part doesn't. We are currently
> integrating all our company's applications with OAuth2. I will discuss the
> possibility of implementing the OpenID Connect specifics with the server's
> developers to be able to use the 'official' Xwiki's OpenID Connect
> Extension.
>
>
>
> --
> View this message in context: http://xwiki.475771.n2.nabble.
> com/OAuth2-Logout-tp7603692p7603759.html
> Sent from the XWiki- Users mailing list archive at Nabble.com.
>



-- 
Thomas Mortagne


Re: [xwiki-users] OAuth2 Logout

2017-05-05 Thread gfinesch
Thank you for your replies. I was actually trying avoiding the deprecated
methods used by the OpenId Connect Extension you suggested so I took the CAS
Extension source code as an example and from that I built my code. The login
part runs without errors, the logout part doesn't. We are currently
integrating all our company's applications with OAuth2. I will discuss the
possibility of implementing the OpenID Connect specifics with the server's
developers to be able to use the 'official' Xwiki's OpenID Connect
Extension. 



--
View this message in context: 
http://xwiki.475771.n2.nabble.com/OAuth2-Logout-tp7603692p7603759.html
Sent from the XWiki- Users mailing list archive at Nabble.com.


Re: [xwiki-users] OAuth2 Logout

2017-04-28 Thread Thomas Mortagne
You should probably look at how the OpenID Connect authenticator deal
with logout. See
https://github.com/xwiki-contrib/oidc/tree/master/oidc-authenticator.

By the way since OpenID Connect is based on OAuth2 it might be better
make OIDC authenticator support OAuth2 only servers (I don't remember
if I did something for it already but I certainly never tested this
use case) instead of writing a new one from scratch. Looks like you
did a lot of things already but it might be easier to maintain on the
long run.

On Fri, Apr 28, 2017 at 5:37 PM, gfinesch  wrote:
> I'm integrating Xwiki with OAuth2. I managed to login but now I'm struggling
> with logging out from the server when I click on 'logout' in Xwiki. This is
> the code snippet that performs the redirection to the server to logout from
> it:
>
> else if ("logout".equals(context.getAction())
> && wrappedRequest.getUserPrincipal() != null) 
> {
> // redirect to the OAuth2 logout page
> wrappedRequest.setUserPrincipal(null);
>
> try {
> context.getResponse().sendRedirect(
> configuration.getOAuth2Param(
> 
> LOGOUT_URL.replace(".", "_"), LOGOUT_URL,
> "logouturl", 
> context));
> } catch (IOException e) {
> throw new 
> XWikiException(XWikiException.MODULE_XWIKI_USER,
> 
> XWikiException.ERROR_XWIKI_USER_INIT,
> "Can't redirect to the OAuth2 
> logout page", e);
> }
> return null;
>
> }
> I wrote a XWikiOAuth2Authenticator class that extends XWikiAuthServiceImpl
> and overrides checkAuth.
>
> The code works since I get redirected to LOGOUT_URL but I also get the
> following stacktrace due to the calling of other Xwiki classes out of my
> control:
>
> 2017-04-28 17:05:31,155
> [http://localhost:8080/xwiki/bin/logout/XWiki/XWikiLogout?xredirect=%2Fxwiki%2Fbin%2Fview%2FMain
> %2F] WARN  c.x.x.w.XWikiAction- Uncaught exception: Error number
> 0 in 11: Uncaught exception
> com.xpn.xwiki.XWikiException: Error number 0 in 11: Uncaught exception
> at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:474)
> at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:210)
> at
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
> at
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
> at
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
> at
> org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:112)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at
> org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:127)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at
> org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at
> org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.j
> ava:208)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at
> 

Re: [xwiki-users] OAuth2 Logout

2017-04-28 Thread Vincent Massol
Hi,

I don’t know much about xwiki and oauth2 but by googling I’ve found this 
extension that seems to be doing that:
http://extensions.xwiki.org/xwiki/bin/view/Extension/XWiki%20Application%20-%20Google%20Apps

It says: "This integration uses the OAuth2 protocol to connect Google Apps with 
XWiki.”

Maybe that could help you. See 
https://github.com/xwiki-contrib/application-googleapps/blob/master/src/main/resources/GoogleApps/AuthService.xml

Thanks
-Vincent

> On 28 Apr 2017, at 17:37, gfinesch  wrote:
> 
> I'm integrating Xwiki with OAuth2. I managed to login but now I'm struggling
> with logging out from the server when I click on 'logout' in Xwiki. This is
> the code snippet that performs the redirection to the server to logout from
> it:
> 
> else if ("logout".equals(context.getAction())
>   && wrappedRequest.getUserPrincipal() != null) {
>   // redirect to the OAuth2 logout page
>   wrappedRequest.setUserPrincipal(null);
> 
>   try {
>   context.getResponse().sendRedirect(
>   configuration.getOAuth2Param(
>   
> LOGOUT_URL.replace(".", "_"), LOGOUT_URL,
>   "logouturl", 
> context));
>   } catch (IOException e) {
>   throw new 
> XWikiException(XWikiException.MODULE_XWIKI_USER,
>   
> XWikiException.ERROR_XWIKI_USER_INIT,
>   "Can't redirect to the OAuth2 
> logout page", e);
>   }
>   return null;
> 
>   } 
> I wrote a XWikiOAuth2Authenticator class that extends XWikiAuthServiceImpl
> and overrides checkAuth.
> 
> The code works since I get redirected to LOGOUT_URL but I also get the
> following stacktrace due to the calling of other Xwiki classes out of my
> control:
> 
> 2017-04-28 17:05:31,155
> [http://localhost:8080/xwiki/bin/logout/XWiki/XWikiLogout?xredirect=%2Fxwiki%2Fbin%2Fview%2FMain
> %2F] WARN  c.x.x.w.XWikiAction- Uncaught exception: Error number
> 0 in 11: Uncaught exception
> com.xpn.xwiki.XWikiException: Error number 0 in 11: Uncaught exception
>at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:474)
>at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:210)
>at
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
>at
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
>at
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
>at
> org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
>at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
>at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
>at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:112)
>at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>at
> org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:127)
>at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>at
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>at
> org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
>at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>at
> org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.j
> ava:208)
>at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>at
> org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.j
> ava:111)
>