<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p></p>
<div>Hi Sebastian</div>
<div><br>
</div>
<div>I did a code very similar of photoz sample.</div>
<div>On my &quot;index.html&quot; has the same &lt;script&gt; block from photoz sample but with onLoad: 'check-sso' on initOptions:</div>
<div><br>
</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>&lt;script&gt;</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>...<span class="Apple-tab-span" style="white-space:pre">
</span></div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>var initOptions = {</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>onLoad: 'check-sso',</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>responseMode: 'query',</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>flow: 'standard'</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>};</div>
<div><br>
</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>keycloak.init(initOptions).success(function (authenticated) {</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>output('Init Success (' &#43; (authenticated ? 'Authenticated' : 'Not Authenticated') &#43; ')');</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>}).error(function () {</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>output('Init Error');</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>});</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>&lt;/script&gt;</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span></div>
<div>To pass keycloak instance for angular code I put on my &quot;app.js&quot; a provider:</div>
<div>&nbsp; &nbsp;&nbsp;</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>var app = angular.module('myApp', [])</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>.provider('keycloak', function () {</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>return {</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>setKeycloak: function (value) {</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>keycloak = value;</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>},</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>$get: function () {</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>return keycloak;</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>}</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>};</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>});</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span></div>
<div>Injecting keycloak on my controller I have success accessing keycloak methods like login or logout:</div>
<div><br>
</div>
<div>app.controller('MainCtrl', ['$scope, ''keycloak', function ($scope, keycloak) {<span class="Apple-tab-span" style="white-space:pre">
</span></div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>$scope.login = function () {</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; keycloak.login();</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; };</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; $scope.logout = function () {</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; keycloak.logout();</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; };</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>}</div>
<div>]);</div>
<div><br>
</div>
<div>Doing this way, I can call angular login and logout from $scope in &quot;index.html&quot; that I have all keycloak event logs reported like photoz sample:</div>
<div><br>
</div>
<div>&lt;body ng-app=&quot;myApp&quot; ng-controller=&quot;MainCtrl&quot;&gt;</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>&lt;div&gt;</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>&lt;button id=&quot;btnLogin&quot; ng-click=&quot;login()&quot;&gt;Login&lt;/button&gt;</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>&lt;button id=&quot;btnLogout&quot; ng-click=&quot;logout()&quot;&gt;Logout&lt;/button&gt;</div>
<div><span class="Apple-tab-span" style="white-space:pre"></span>&lt;/div&gt;</div>
<div>...</div>
<div><br>
</div>
<div>
<div>The behavior of my app is that I described on last email with an infinite loop if an authenticated user browse to www.exampledomain.com/someAppPath.</div>
<div><br>
</div>
<div>I am not doing the bootstrap of angular, perhaps it can be my problem. I not know where is the best place to do it, I will try find.&nbsp;</div>
</div>
<div></div>
<br>
<p></p>
Regards,
<div>Maurício.<br>
<br>
<div style="color: rgb(0, 0, 0);">
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>De:</b> Sebastien Blanc &lt;sblanc@redhat.com&gt;<br>
<b>Enviado:</b> segunda-feira, 26 de setembro de 2016 13:57<br>
<b>Para:</b> Maurício Giacomini Penteado<br>
<b>Cc:</b> keycloak-dev@lists.jboss.org<br>
<b>Assunto:</b> Re: [keycloak-dev] Infinite loop problem with authenticated users browsing out of root context</font>
<div>&nbsp;</div>
</div>
<div>Could you share some code on how you initiate keycloak and bootstrap the angular app ?<span></span><br>
<br>
Le&nbsp;lundi 26 septembre 2016, Maurício Giacomini Penteado &lt;<a href="mailto:mauriciogiacomini@hotmail.com">mauriciogiacomini@hotmail.com</a>&gt; a écrit&nbsp;:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div dir="ltr">
<div style="font-size:12pt; color:#000000; font-family:Calibri,Arial,Helvetica,sans-serif">
<p>Hello everybody</p>
<p><br>
</p>
<p></p>
<div>I have a strange error trying codify with keycloak 2.0.0, Angular 1.5.8 and Wildfly 10. I am programming an application that follows concepts of &quot;WYSIWYG&quot;.</div>
<div>In my application I have setted keycloak to work on model &quot;check-sso&quot;.</div>
<div>All work perfectly if browsing is done with unauthenticated users on any path from my application.</div>
<div>But strangely, authenticated users just can browse on root context from my application. If any aditional path is requested with an authenticated user the app starts a infinite loop.</div>
<div><br>
</div>
<div>Example (with app running on root context &quot;/&quot;):</div>
<div><br>
</div>
<div><a href="http://www.exampledomain.com/" target="_blank">www.exampledomain.com/</a> &nbsp;- &gt; Works perfectly with authenticated users or unauthenticated users.&nbsp;</div>
<div><br>
</div>
<div><a href="http://www.exampledomain.com/someAppPath" target="_blank">www.exampledomain.com/<wbr>someAppPath</a><a href="http://www.exampledomain.com/someAppPath" target="_blank"></a>&nbsp; - &gt; Just works with unauthenticated users. With authenticated users starts
 a infinite loop.&nbsp;</div>
<div><br>
</div>
<div><br>
</div>
<div>If anybody has an idea to solve this problem please, let me know.</div>
<div><br>
</div>
<div>Regards,</div>
<div>Maurício.</div>
<div><br>
</div>
<br>
<p></p>
<p><br>
</p>
<p><br>
</p>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</body>
</html>