[keycloak-user] Login without Keycloak Login Page
ruiwp13
ruiwp_93 at hotmail.com
Wed Dec 21 03:21:44 EST 2016
Bill Burke wrote
> On 12/20/16 12:00 PM, ruiwp13 wrote:
>> Bill Burke wrote
>>> On 12/19/16 11:32 AM, ruiwp13 wrote:
>>>> Bill Burke wrote
>>>>> I looked at the image, specifically the @Path("/login") JAX-RS method.
>>>>> What you are attempting will just not work. Period. I don't think
>>>>> you
>>>>> understand how basic servlet, JAX-RS, and HTTP works along with how
>>>>> Open
>>>>> ID Connection works. OpenID Connect (and SAML) require browser
>>>>> redirects. In looking at your code, you're expecting authenticate()
>>>>> to
>>>>> redirect the browser to keycloak, have the user login, then redirect
>>>>> back. This just doesn't do what you expect. And it shouldn't.
>>>>> Calling servletRequest.authenticate() sets a 302 response with a
>>>>> Location header pointing back to the server. That's it... You
>>>>> actually override what authenticate() did by returning a JAX-RS
>>>>> response.
>>>>> _______________________________________________
>>>>> keycloak-user mailing list
>>>>> keycloak-user at .jboss
>>>>> https://lists.jboss.org/mailman/listinfo/keycloak-user
>>>> Thank you for the answer Bill,
>>>>
>>>> It does redirect me to keycloak login page and then back to my login
>>>> page.
>>>> The redirect back is managed by keycloak. It redirects back to the
>>>> application after login. It may have something wrong when I do the
>>>> authenticate(), but it does redirect me to Keycloak login page. If I
>>>> knew
>>>> how everything worked I wasn't here asking for help eheh. I came here
>>>> to
>>>> know what I was doing wrong or if it was a keycloak problem.
>>>>
>>>> What is the correct way to do it then?
>>> I'm not sure what you mean by "Login without Keycloak Login Page". Is
>>> this a browser application? If so, I strongly suggest you use our
>>> adapter and Keycloak Login pages. Login pages can be stylized however
>>> you want. You are not using our adapter as it was intended to be used
>>> so we just can't help you. You're on your own.
>>>
>>> You can do a login without keycloak login pages, but this flow is for
>>> REST clients only, not browser applications. Use direct grant [1] to
>>> obtain a token. Here's a crude example [2] Sorry there isn't better
>>> docs on this.
>>>
>>> [1] https://tools.ietf.org/html/rfc6749#section-4.3
>>> [2]
>>> https://github.com/keycloak/keycloak/blob/master/examples/demo-template/admin-access-app/src/main/java/org/keycloak/example/AdminClient.java
>>>
>>>
>>> _______________________________________________
>>> keycloak-user mailing list
>>> keycloak-user at .jboss
>>> https://lists.jboss.org/mailman/listinfo/keycloak-user
>> Is there no possibility of invalidating the token or at least, set it's
>> expiration to "now" when the user logs out?
>> Now, when I logout I get the backchannel logout request from keycloak but
>> the token is still valid. I am able to access the secured pages even
>> though
>> the session in keycloak has ended.
> Are you still doing your *hack* approach?
> HttpServletRequest.getSession().invalidate() might work. Like I said
> before, if you insist on doing things your own way and in a way that was
> not intended for the adapter to work, there's not much we can help you
> with.
>
> Bill
> _______________________________________________
> keycloak-user mailing list
> keycloak-user at .jboss
> https://lists.jboss.org/mailman/listinfo/keycloak-user
Hello Bill,
Well, not sure if it is an hack approach. I want to login through REST
without having to be redirected to keycloak login page because there is a
part where there will be no broswer interaction.
At the moment, I am logging in with authorization code flow through HTTP
GETs and POSTs and scrapping the login form to get the code & state. I also
send the client_session_state containing the
HttpServletRequest.getSession().getId()
To logout I am making a POST call to the logout endpoint sending the
refresh_token and the client_id and client_secret.
Is this the right way to do it?
Otherwise how am I supposed to logout without a browser, in a servlet?
--
View this message in context: http://keycloak-user.88327.x6.nabble.com/Login-without-Keycloak-Login-Page-tp1974p2075.html
Sent from the keycloak-user mailing list archive at Nabble.com.
More information about the keycloak-user
mailing list