Hi, We have done the following changes in the store/controllers/top-assets.jag [1] and store/controllers/logout.jag [2] to get the $subject working. But having some issue while rendering the images in store. This issue not relate with the JWT token based login. When the asset-store published through the AppM, context get changed, but still images (banner & thumbnail) tries to load from the original context.
i.e context given for the asset-store though appM is *teststore/1.0.0/* : https://apps.private.wso2.com/*teststore/1.0.0/* but the banner tries to load as : https://apps.private.wso2.com/*store*/storage/presentation/2a7749a2-73f2-4a78-816b-950156c6e513/29f45234-8d20-465e-be6b-dd1d5c83d8ae/be96aa329d30f45b4357d45b0d8ad68e.jpg it should be : https://apps.private.wso2.com/*teststore/1.0.0/*storage/presentation/2a7749a2-73f2-4a78-816b-950156c6e513/29f45234-8d20-465e-be6b-dd1d5c83d8ae/be96aa329d30f45b4357d45b0d8ad68e.jpg we need to change the logic in ES to read the context correctly and load the images. @Chathurika: can you or someone from team discuss with ES team and get this issue fixed ? [1]. var Base64 = org.opensaml.xml.util.Base64; var log=new Log(); var jwtToken = request.getHeader("X-JWT-Assertion"); if (jwtToken !=null) { var user = require('store').user; var jwtAssertions = jwtToken.split("."); //JWT header by default contains three '.' separated sections var jsonString = String(new java.lang.String(Base64.decode(jwtAssertions[1]))); var obj = parse(jsonString); log.info("************" + obj); var loggedInUser = obj.Subject; session.put("LOGGED_IN_USER", loggedInUser); session.put("server.user", loggedInUser); session.put("Loged", "true"); *session.put("JWT_LOGIN", "true");* //This is used to identify the SAML2 based logout and JWT logout user.permitted(loggedInUser, session); } [2]. <% (function(){ var user = session.get("LOGGED_IN_USER"); if(user === null) { response.sendRedirect('/store'); } *else { if (session.get("JWT_LOGIN") != null) { session.invalidate(); response.sendRedirect('/store'); } *else { var config = require('/config/store.js').config(), sso = require('sso'), sso_sessions = application.get('sso_sessions'), sessionId = session.getId(), encodedSAMLLogoutRequest = sso.client.getEncodedSAMLLogoutRequest(user, sso_sessions[session.getId()], config.ssoConfiguration.issuer), relayState = '/store', postUrl = "https://" + process.getProperty('server.host') + ":" + process.getProperty('https.port'); var log = new Log(); log.debug("store session index : " + sso_sessions[session.getId()]); %> <div> <p>You are now redirected to Stratos Identity. If the redirection fails, please click the post button.</p> <form id="logoutForm" method="post" action="<%=postUrl%>/admin/samlsso"> <p> <input type="hidden" name="SAMLRequest" value="<%= encodedSAMLLogoutRequest %>"/> <input type="hidden" name="RelayState" value="<%= relayState %>"/> <input type="hidden" name="SSOAuthSessionID" value="<%= sessionId %>"/> <button type="submit">POST</button> </p> </form> </div> <script type = "text/javascript" > document.forms[0].submit(); </script> <% } } }()); %> Regards, Dinusha, -- Dinusha Dilrukshi Senior Software Engineer WSO2 Inc.: http://wso2.com/ Mobile: +94725255071 Blog: http://dinushasblog.blogspot.com/
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
