[Yanel-commits] rev 30795 -
public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/security/impl
michi at wyona.com
michi at wyona.com
Sat Jan 26 16:27:02 CET 2008
Author: michi
Date: 2008-01-26 16:27:02 +0100 (Sat, 26 Jan 2008)
New Revision: 30795
Modified:
public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/security/impl/DefaultWebAuthenticatorImpl.java
Log:
add current user id to login screen in case it actually exists
Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/security/impl/DefaultWebAuthenticatorImpl.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/security/impl/DefaultWebAuthenticatorImpl.java 2008-01-26 15:04:19 UTC (rev 30794)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/security/impl/DefaultWebAuthenticatorImpl.java 2008-01-26 15:27:02 UTC (rev 30795)
@@ -141,6 +141,7 @@
}
identityMap.put(realm.getID(), new Identity(user));
// OpenID authentication successful, hence return null instead an "exceptional" response
+ // TODO: Do not return null (although successful), but rather strip-off all the openid query string stuff and then do a redirect
return null;
} else {
log.error("No openid.identity!");
@@ -373,6 +374,12 @@
Element realmElement = (Element) rootElement.appendChild(adoc.createElementNS(YanelServlet.NAMESPACE, "realm"));
realmElement.setAttributeNS(YanelServlet.NAMESPACE, "name", realm.getName());
realmElement.setAttributeNS(YanelServlet.NAMESPACE, "mount-point", realm.getMountPoint().toString());
+
+ String currentUserId = getCurrentUserId(request, realm);
+ if (currentUserId != null) {
+ Element userElement = (Element) rootElement.appendChild(adoc.createElementNS(YanelServlet.NAMESPACE, "user"));
+ userElement.setAttributeNS(YanelServlet.NAMESPACE, "id", currentUserId);
+ }
Element sslElement = (Element) rootElement.appendChild(adoc.createElementNS(YanelServlet.NAMESPACE, "ssl"));
if(sslPort != null) {
@@ -532,4 +539,16 @@
// see AuthenticationResult result = joid.authenticate(convertToStringValueMap(servletRequest.getParameterMap())); (src/org/verisign/joid/consumer/OpenIdFilter.java)
// https://127.0.0.1:8443/yanel/foaf/login.html?openid.sig=2%2FjpOdpJpEMfibrb9v9OHuzm0kg%3D&openid.mode=id_res&openid.return_to=https%3A%2F%2F127.0.0.1%3A8443%2Fyanel%2Ffoaf%2Flogin.html&openid.identity=http%3A%2F%2Fopenid.claimid.com%2Fmichi&openid.signed=identity%2Creturn_to%2Cmode&openid.assoc_handle=%7BHMAC-SHA1%7D%7B47967654%7D%7BB8gYrw%3D%3D%7D
*/
+
+ /**
+ * Get current user id. Return null if not signed in yet.
+ */
+ String getCurrentUserId(HttpServletRequest request, Realm realm) {
+ IdentityMap identityMap = (IdentityMap)request.getSession(true).getAttribute(YanelServlet.IDENTITY_MAP_KEY);
+ if (identityMap != null) {
+ Identity identity = (Identity) identityMap.get(realm.getID());
+ if (identity != null && !identity.isWorld()) return identity.getUsername();
+ }
+ return null;
+ }
}
More information about the Yanel-commits
mailing list