Alon Bar-Lev has posted comments on this change.

Change subject: core : Add engine sso
......................................................................


Patch Set 2:

(16 comments)

http://gerrit.ovirt.org/#/c/36119/2/backend/manager/modules/enginesso/src/main/java/org/ovirt/engine/core/sso/servlets/AuthenticationUtils.java
File 
backend/manager/modules/enginesso/src/main/java/org/ovirt/engine/core/sso/servlets/AuthenticationUtils.java:

Line 10: import org.ovirt.engine.api.extensions.aaa.Mapping;
Line 11: import org.ovirt.engine.core.aaa.AcctUtils;
Line 12: import org.ovirt.engine.core.aaa.AuthType;
Line 13: import org.ovirt.engine.core.aaa.AuthenticationProfile;
Line 14: import org.ovirt.engine.core.aaa.AuthenticationProfileRepository;
I would like to avoid using these two^
Line 15: import org.ovirt.engine.core.aaa.AuthzUtils;
Line 16: import org.ovirt.engine.core.aaa.DirectoryGroup;
Line 17: import org.ovirt.engine.core.aaa.DirectoryUser;
Line 18: import org.ovirt.engine.core.aaa.filters.FiltersHelper;


Line 11: import org.ovirt.engine.core.aaa.AcctUtils;
Line 12: import org.ovirt.engine.core.aaa.AuthType;
Line 13: import org.ovirt.engine.core.aaa.AuthenticationProfile;
Line 14: import org.ovirt.engine.core.aaa.AuthenticationProfileRepository;
Line 15: import org.ovirt.engine.core.aaa.AuthzUtils;
this one as well is probably bad for us^
Line 16: import org.ovirt.engine.core.aaa.DirectoryGroup;
Line 17: import org.ovirt.engine.core.aaa.DirectoryUser;
Line 18: import org.ovirt.engine.core.aaa.filters.FiltersHelper;
Line 19: import org.ovirt.engine.core.extensions.mgr.ExtensionProxy;


Line 13: import org.ovirt.engine.core.aaa.AuthenticationProfile;
Line 14: import org.ovirt.engine.core.aaa.AuthenticationProfileRepository;
Line 15: import org.ovirt.engine.core.aaa.AuthzUtils;
Line 16: import org.ovirt.engine.core.aaa.DirectoryGroup;
Line 17: import org.ovirt.engine.core.aaa.DirectoryUser;
these two are not needed^ we can just use the ExtMap
Line 18: import org.ovirt.engine.core.aaa.filters.FiltersHelper;
Line 19: import org.ovirt.engine.core.extensions.mgr.ExtensionProxy;
Line 20: import org.slf4j.Logger;
Line 21: import org.slf4j.LoggerFactory;


Line 14: import org.ovirt.engine.core.aaa.AuthenticationProfileRepository;
Line 15: import org.ovirt.engine.core.aaa.AuthzUtils;
Line 16: import org.ovirt.engine.core.aaa.DirectoryGroup;
Line 17: import org.ovirt.engine.core.aaa.DirectoryUser;
Line 18: import org.ovirt.engine.core.aaa.filters.FiltersHelper;
we do not need the filters in this implementation (yet).
Line 19: import org.ovirt.engine.core.extensions.mgr.ExtensionProxy;
Line 20: import org.slf4j.Logger;
Line 21: import org.slf4j.LoggerFactory;
Line 22: 


Line 152:         }
Line 153:         return accumulator;
Line 154:     }
Line 155: 
Line 156:     public static DirectoryUser 
mapPrincipalRecordToDirectoryUser(final String authzName, final ExtMap 
principalRecord) {
we do not need to map, just keep use ExtMap
Line 157:         DirectoryUser directoryUser = null;
Line 158:         if (principalRecord != null) {
Line 159:             directoryUser = new DirectoryUser(
Line 160:                     authzName,


Line 180:         }
Line 181:         return directoryUser;
Line 182:     }
Line 183: 
Line 184:     public static DirectoryGroup mapGroupRecordToDirectoryGroup(final 
String authzName, final ExtMap group) {
same
Line 185:         DirectoryGroup directoryGroup = null;
Line 186:         if (group != null) {
Line 187:             directoryGroup = new DirectoryGroup(
Line 188:                     authzName,


http://gerrit.ovirt.org/#/c/36119/2/backend/manager/modules/enginesso/src/main/java/org/ovirt/engine/core/sso/servlets/SSOUser.java
File 
backend/manager/modules/enginesso/src/main/java/org/ovirt/engine/core/sso/servlets/SSOUser.java:

Line 6: import java.util.Collection;
Line 7: import java.util.Collections;
Line 8: import java.util.HashSet;
Line 9: 
Line 10: public class SSOUser {
why do we need this class? can't we just use the ExtMap?
Line 11: 
Line 12:     private String externalId;
Line 13: 
Line 14:     private String domain;


http://gerrit.ovirt.org/#/c/36119/2/backend/manager/modules/enginesso/src/main/java/org/ovirt/engine/core/sso/servlets/SSOUtils.java
File 
backend/manager/modules/enginesso/src/main/java/org/ovirt/engine/core/sso/servlets/SSOUtils.java:

Line 11: public class SSOUtils {
Line 12: 
Line 13:     public static void redirectToModule(SSOUser ssoUser, 
HttpServletResponse response, String module)
Line 14:             throws IOException {
Line 15:         StringBuilder redirectUrl = new 
StringBuilder("/ovirt-engine/");
this can be relative
Line 16:         redirectUrl.append(module);
Line 17:         redirectUrl.append("/login?");
Line 18: 
Line 19:         StringBuilder params = new StringBuilder("");


Line 16:         redirectUrl.append(module);
Line 17:         redirectUrl.append("/login?");
Line 18: 
Line 19:         StringBuilder params = new StringBuilder("");
Line 20:         appendParameter(params, "userExternalId", 
ssoUser.getExternalId());
userId the fact that engine has several ids is irrelevant...
Line 21:         appendParameter(params, "username", ssoUser.getLoginName());
Line 22:         appendParameter(params, "domain", ssoUser.getDomain());
Line 23:         appendParameter(params, "email", ssoUser.getEmail());
Line 24:         appendParameter(params, "groupIds", 
StringUtils.join(ssoUser.getGroupIds(), ","));


Line 17:         redirectUrl.append("/login?");
Line 18: 
Line 19:         StringBuilder params = new StringBuilder("");
Line 20:         appendParameter(params, "userExternalId", 
ssoUser.getExternalId());
Line 21:         appendParameter(params, "username", ssoUser.getLoginName());
this should be user name
Line 22:         appendParameter(params, "domain", ssoUser.getDomain());
Line 23:         appendParameter(params, "email", ssoUser.getEmail());
Line 24:         appendParameter(params, "groupIds", 
StringUtils.join(ssoUser.getGroupIds(), ","));
Line 25:         redirectUrl.append(params.toString());


Line 18: 
Line 19:         StringBuilder params = new StringBuilder("");
Line 20:         appendParameter(params, "userExternalId", 
ssoUser.getExternalId());
Line 21:         appendParameter(params, "username", ssoUser.getLoginName());
Line 22:         appendParameter(params, "domain", ssoUser.getDomain());
please use the consistent aaa term, this should be profile
Line 23:         appendParameter(params, "email", ssoUser.getEmail());
Line 24:         appendParameter(params, "groupIds", 
StringUtils.join(ssoUser.getGroupIds(), ","));
Line 25:         redirectUrl.append(params.toString());
Line 26:         response.sendRedirect(redirectUrl.toString());


Line 20:         appendParameter(params, "userExternalId", 
ssoUser.getExternalId());
Line 21:         appendParameter(params, "username", ssoUser.getLoginName());
Line 22:         appendParameter(params, "domain", ssoUser.getDomain());
Line 23:         appendParameter(params, "email", ssoUser.getEmail());
Line 24:         appendParameter(params, "groupIds", 
StringUtils.join(ssoUser.getGroupIds(), ","));
we cannot know if group id can have comma or not, so better to encode them or 
use some other format.
Line 25:         redirectUrl.append(params.toString());
Line 26:         response.sendRedirect(redirectUrl.toString());
Line 27:     }
Line 28: 


Line 21:         appendParameter(params, "username", ssoUser.getLoginName());
Line 22:         appendParameter(params, "domain", ssoUser.getDomain());
Line 23:         appendParameter(params, "email", ssoUser.getEmail());
Line 24:         appendParameter(params, "groupIds", 
StringUtils.join(ssoUser.getGroupIds(), ","));
Line 25:         redirectUrl.append(params.toString());
I believe you need to encode each.

or better have json/xml and encode it into single parameter.
Line 26:         response.sendRedirect(redirectUrl.toString());
Line 27:     }
Line 28: 
Line 29:     private static void appendParameter(StringBuilder params, String 
name, String value) {


Line 27:     }
Line 28: 
Line 29:     private static void appendParameter(StringBuilder params, String 
name, String value) {
Line 30:         if (params.length() > 0) {
Line 31:             params.append("&");
you can add & at start as well, nothing will happen.
Line 32:         }
Line 33:         params.append(name);
Line 34:         params.append("=");
Line 35:         params.append(value);


Line 44:             throws ServletException, IOException {
Line 45:         forwardRequest(request, response, "/WEB-INF/login.jsp");
Line 46:     }
Line 47: 
Line 48:     public static void 
forwardToLoginPageWithMessage(HttpServletRequest request, HttpServletResponse 
response, String msg)
well, if you have message parameter, then probably this what you mean :)

but I really do not like these wrappers... these are one liners useless 
utilities... why not just do whatever required in code.
Line 49:             throws ServletException, IOException {
Line 50:         forwardRequest(request, response, 
"/WEB-INF/login.jsp?msg="+msg);
Line 51:     }
Line 52: 


Line 53:     private static void forwardRequest(HttpServletRequest request, 
HttpServletResponse response, String uri)
Line 54:             throws ServletException, IOException {
Line 55:         RequestDispatcher dispatcher = 
request.getRequestDispatcher(uri);
Line 56:         response.setContentType("text/html;charset=UTF-8");
Line 57:         if (dispatcher != null) {
and if null? raise exception?
Line 58:             dispatcher.include(request, response);
Line 59:         }
Line 60:     }
Line 61: 


-- 
To view, visit http://gerrit.ovirt.org/36119
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I4894fc12653027271b6abd4dd5313b10593703fa
Gerrit-PatchSet: 2
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ravi Nori <rn...@redhat.com>
Gerrit-Reviewer: Alon Bar-Lev <alo...@redhat.com>
Gerrit-Reviewer: automat...@ovirt.org
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to