Commit 21c12272 by Harsh Shah

Test SSO review changes

parent 74734ff8
package performa.sso;
import oneit.objstore.*;
import oneit.security.AuthorisationToken;
import oneit.security.SecUser;
import oneit.utils.BaseObject;
import oneit.utils.Debug;
public class ClientAuthToken extends BaseObject implements AuthorisationToken
{
public static final String ROLE_TL_CLIENT = "TL_Client";
SecUser client;
public ClientAuthToken(String userName, ObjectTransaction objTran)
{
client = SecUser.searchNAME(objTran, userName);
Debug.assertion(client != null, "No Client matches:", userName);
}
public boolean isAuthorised(String priv)
{
return client!=null && client.hasRole(ROLE_TL_CLIENT);
}
public SecUser getLoggedInClient ()
{
return client;
}
@Override
public String getIdentification() {
return client.getDescription();
}
@Override
public String getDescription() {
return "";
}
}
...@@ -21,4 +21,9 @@ public class Utils ...@@ -21,4 +21,9 @@ public class Utils
{ {
return Privilege.searchNAME(transaction, priv); return Privilege.searchNAME(transaction, priv);
} }
public static boolean isValidClient(SecUser secUser)
{
return (secUser != null && secUser.hasRole(ROLE_CLIENT));
}
} }
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<%@page import="oneit.security.*, oneit.servlets.security.SessionSecUserDecorator"%> <%@page import="oneit.security.*, oneit.servlets.security.SessionSecUserDecorator"%>
<%@page import="java.util.Date"%> <%@page import="java.util.Date"%>
<%@page import="oneit.objstore.services.TransactionServicesFactory"%> <%@page import="oneit.objstore.services.TransactionServicesFactory"%>
<%@page import="performa.sso.*, oneit.objstore.*, oneit.appservices.config.*" %> <%@page import="performa.utils.*, oneit.objstore.*, oneit.appservices.config.*" %>
<% <%
SecUser pageUser = (SecUser)(session.getAttribute(SecUser.SEC_USER_ID)); SecUser pageUser = (SecUser)(session.getAttribute(SecUser.SEC_USER_ID));
...@@ -10,37 +10,50 @@ ...@@ -10,37 +10,50 @@
if (userName != null) if (userName != null)
{ {
TransactionServicesFactory tsf = (TransactionServicesFactory)ConfigMgr.getConfigObject(ConfigMgr.GLOBAL_CONFIG_SYSTEM, "TransactionServices"); if(ConfigMgr.getKeyfileBoolean("test.sso", false))
ObjectTransaction objTran = new ObjectTransaction (tsf);
try
{ {
ClientAuthToken authToken = new ClientAuthToken(userName, objTran); TransactionServicesFactory tsf = (TransactionServicesFactory)ConfigMgr.getConfigObject(ConfigMgr.GLOBAL_CONFIG_SYSTEM, "TransactionServices");
ObjectTransaction objTran = new ObjectTransaction (tsf);
if(authToken.isAuthorised(null))
try
{ {
request.getSession().invalidate(); SecUser secUser = SecUser.searchNAME(objTran, userName);
request.getSession().setAttribute (AuthorisationToken.AUTH_TOKEN_ID, authToken);
if(Utils.isValidClient(secUser))
{
request.getSession().invalidate();
request.getSession().setAttribute (AuthorisationToken.AUTH_TOKEN_ID, secUser);
request.getSession ().setAttribute (SecUser.SEC_USER_ID, authToken.getLoggedInClient()); // place the user on the session
request.getSession ().setAttribute (SecUser.SEC_USER_ID, secUser);
// This is only to help with the tomcat manager, so you can see which user belongs to which session // This is only to help with the tomcat manager, so you can see which user belongs to which session
request.getSession ().setAttribute (SecUser.SEC_USER_ID+".desc", authToken.getDescription()); request.getSession ().setAttribute (SecUser.SEC_USER_ID+".desc", secUser.getDescription());
request.getSession ().setAttribute (SecUser.SEC_USER_ID+".loggedin", ""+new Date()); request.getSession ().setAttribute (SecUser.SEC_USER_ID+".loggedin", ""+new Date());
request.getSession ().setAttribute (SessionSecUserDecorator.REFRESH_SECURITY, Boolean.TRUE); request.getSession ().setAttribute (SessionSecUserDecorator.REFRESH_SECURITY, Boolean.TRUE);
objTran.commit(); objTran.commit();
objTran.commitResources(); objTran.commitResources();
response.sendRedirect("AdminPortal-Home.htm"); response.sendRedirect("AdminPortal-CreateJob.htm");
}
else
{
response.setStatus(404);
return;
}
}
finally
{
objTran.releaseResources();
} }
} }
finally else
{ {
objTran.releaseResources(); response.setStatus(404);
} return;
}
} }
%> %>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
...@@ -50,7 +63,7 @@ ...@@ -50,7 +63,7 @@
</head> </head>
<body> <body>
<form method="POST"> <form method="POST">
<input name="userName" value=""> <input name="userName" value="" required="required" >
<input type="submit" name="Go" value="Submit"> <input type="submit" name="Go" value="Submit">
</form> </form>
</body> </body>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment