git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31543
"email" : "vasary@elgekko.net"\r
}\r
],\r
- "localAdmins": "root",\r
- "localSubmitters": "lebony",\r
- "localEditors": "editor"\r
+ "localAdmins": [\r
+ "root",\r
+ "admin"\r
+ ],\r
+ "localSubmitters": [\r
+ "lebony",\r
+ "xyz"\r
+ ],\r
+ "localEditors": [\r
+ "editor"\r
+ ]\r
}\r
}\r
\r
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>\r
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console"/>\r
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>\r
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory -Dorg.eclipse.epp.logging.aeri.skipReports=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djobengine.jobsteps.root="${workspace_loc}/user.jobengine.executors/config" -Djobengine.jobtemplates.root="${workspace_loc}/user.jobengine.executors/jobtemplates" -Djobengine.db.url=jdbc:db2://10.228.198.1:50000/mediaarc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.db.user=db2admin -Djobengine.db.password=password -Djobengine.loglevel=INFO -Dlog4j.configurationFile="${workspace_loc}/-configuration/log4j2.xml" -Djobengine.jobsteps.alternate.root="${workspace_loc}/user.jobengine.executors/bin/" -Djetty.home="${workspace_loc:}/-configuration/jetty" -Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml -Dorg.eclipse.jetty.webapp.basetempdir=c:\temp\jetty -Djava.io.tmpdir=c:\temp\jetty -Djobengine.octopus.api.address=http://10.10.1.11/api/v1 -Djobengine.octopus.api.user=mam -Djobengine.octopus.api.password=napocska -Djobengine.nosql.db.url=jdbc:db2://10.228.198.1:50000/mccache:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.nosql.db.user=db2admin -Djobengine.nosql.db.password=password -Djobengine.nosql.db.schema=test -Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl -Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC.zenium -Djobengine.jobscheduling.config="${workspace_loc}/-configuration/scheduledjobs.json" -Djobengine.maestro.config="${workspace_loc}/-configuration/maestro.json" -Djobengine.nexio.db.url=jdbc:sqlserver://10.10.1.59:1433;databaseName=NXDB; -Djobengine.nexio.db.user=sa -Djobengine.nexio.db.password=resolve -Djobengine.planair.db.url=jdbc:sqlserver://10.10.1.45;databaseName=PA_Echo; -Djobengine.planair.db.user=MAM -Djobengine.planair.db.password=Echotv.hu -Dnexio.host=192.168.0.12 -Djobengine.nexio.name=testnexioclips -Dnexio.useMOSGateway=false -Dnexio.disable=true -Djobengine.octopus.rundowns.name=rundowns181026 -Djobengine.octopus.storyfolders.name=storyfolders181026 -Djobengine.octopus.stories.name=stories181026 -Dmediacube.auth.location="${workspace_loc}/-configuration/mediacube-auth.properties""/>\r
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djavax.ws.rs.ext.RuntimeDelegate=org.jboss.resteasy.spi.ResteasyProviderFactory -Dorg.eclipse.epp.logging.aeri.skipReports=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djobengine.jobsteps.root="${workspace_loc}/user.jobengine.executors/config" -Djobengine.jobtemplates.root="${workspace_loc}/user.jobengine.executors/jobtemplates" -Djobengine.db.url=jdbc:db2://10.228.198.1:50000/mediaarc:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.db.user=db2admin -Djobengine.db.password=password -Djobengine.loglevel=INFO -Dlog4j.configurationFile="${workspace_loc}/-configuration/log4j2.xml" -Djobengine.jobsteps.alternate.root="${workspace_loc}/user.jobengine.executors/bin/" -Djetty.home="${workspace_loc:}/-configuration/jetty" -Djetty.etc.config.urls=etc/user-jetty.xml,etc/user-jetty-ssl.xml,etc/user-jetty-ssl-context.xml,,etc/user-jetty-http.xml,etc/user-jetty-https.xml -Dorg.eclipse.jetty.webapp.basetempdir=c:\temp\jetty -Djava.io.tmpdir=c:\temp\jetty -Djobengine.octopus.api.address=http://10.10.1.11/api/v1 -Djobengine.octopus.api.user=mam -Djobengine.octopus.api.password=napocska -Djobengine.nosql.db.url=jdbc:db2://10.228.198.1:50000/mccache:retrieveMessagesFromServerOnGetMessage=true; -Djobengine.nosql.db.user=db2admin -Djobengine.nosql.db.password=password -Djobengine.nosql.db.schema=test -Djobengine.selenio.address=http://10.10.1.71:44000/TranscodeMgrWS?wsdl -Djobengine.selenio.projectfilepath=\\10.10.1.71\Data\Blueprints\MP4_H264_AAC.zenium -Djobengine.jobscheduling.config="${workspace_loc}/-configuration/scheduledjobs.json" -Djobengine.mediacube.config="${workspace_loc}/-configuration/mediacube.json" -Djobengine.maestro.config="${workspace_loc}/-configuration/maestro.json" -Djobengine.nexio.db.url=jdbc:sqlserver://10.10.1.59:1433;databaseName=NXDB; -Djobengine.nexio.db.user=sa -Djobengine.nexio.db.password=resolve -Djobengine.planair.db.url=jdbc:sqlserver://10.10.1.45;databaseName=PA_Echo; -Djobengine.planair.db.user=MAM -Djobengine.planair.db.password=Echotv.hu -Dnexio.host=192.168.0.12 -Djobengine.nexio.name=testnexioclips -Dnexio.useMOSGateway=false -Dnexio.disable=true -Dgui.statistics.disable=true -Dgui.help.disable=true -Dgui.editor.disable=true -Djobengine.octopus.rundowns.name=rundowns181026 -Djobengine.octopus.storyfolders.name=storyfolders181026 -Djobengine.octopus.stories.name=stories181026 -Dmediacube.auth.location="${workspace_loc}/-configuration/mediacube-auth.properties""/>\r
<stringAttribute key="pde.version" value="3.3"/>\r
<booleanAttribute key="show_selected_only" value="false"/>\r
-<stringAttribute key="target_bundles" value="cglib@default:default,com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-joda@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.fasterxml.jackson.module.jackson-module-jaxb-annotations,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,com.sun.el.javax.el@default:default,commons-logging,humble.video.noarch@default:default,humble.video.windows@default:default,javax.annotation-api@default:default,javax.inject,javax.mail@default:default,javax.servlet-api@default:default,javax.servlet.jsp-api@default:default,javax.validation.api,javax.ws.rs-api@default:default,jcifs@default:default,joda-time@default:default,org.apache.aries.spifly.dynamic.bundle@default:default,org.apache.aries.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.jasper.glassfish@default:default,org.apache.logging.log4j.api@1:true,org.apache.logging.log4j.core@default:default,org.apache.logging.log4j.slf4j-impl@default:default,org.apache.servicemix.bundles.quartz@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.util@default:default,org.eclipse.jetty.client,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.jsp@default:default,org.eclipse.jetty.osgi.boot.jsp@default:false,org.eclipse.jetty.osgi.boot@default:true,org.eclipse.jetty.schemas@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jetty.webapp@default:default,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.websocket.server@default:default,org.eclipse.jetty.websocket.servlet@default:default,org.eclipse.jetty.xml@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jboss.resteasy.client@default:default,org.jboss.resteasy.jaxrs@default:default,org.jmock.junit4@default:default,org.jmock@default:default,org.junit@default:default,org.mybatis.mybatis@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
+<stringAttribute key="target_bundles" value="cglib@default:default,com.fasterxml.jackson.core.jackson-annotations@default:default,com.fasterxml.jackson.core.jackson-core@default:default,com.fasterxml.jackson.core.jackson-databind@default:default,com.fasterxml.jackson.datatype.jackson-datatype-joda@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-base@default:default,com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider@default:default,com.ibm.db2jcc4@default:default,com.ibm.nosql@default:default,com.microsoft.sqlserver.sqljdbc@default:default,commons-logging@default:default,humble.video.noarch@default:default,humble.video.windows@default:default,javax.annotation-api@default:default,javax.mail@default:default,javax.servlet-api@default:default,javax.ws.rs-api@default:default,jcifs@default:default,joda-time@default:default,org.apache.aries.spifly.dynamic.bundle@default:default,org.apache.aries.util@default:default,org.apache.commons.beanutils@default:default,org.apache.commons.collections@default:default,org.apache.commons.digester@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.logging.log4j.api@1:true,org.apache.logging.log4j.core@default:default,org.apache.logging.log4j.slf4j-impl@default:default,org.apache.servicemix.bundles.quartz@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.util@default:default,org.eclipse.jetty.client@default:default,org.eclipse.jetty.deploy@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.osgi.boot@default:true,org.eclipse.jetty.schemas@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jetty.webapp@default:default,org.eclipse.jetty.websocket.api@default:default,org.eclipse.jetty.websocket.client@default:default,org.eclipse.jetty.websocket.common@default:default,org.eclipse.jetty.websocket.server@default:default,org.eclipse.jetty.websocket.servlet@default:default,org.eclipse.jetty.xml@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jboss.resteasy.client@default:default,org.jboss.resteasy.jaxrs@default:default,org.jmock.junit4@default:default,org.jmock@default:default,org.junit@default:default,org.mybatis.mybatis@default:default,org.objectweb.asm.commons@default:default,org.objectweb.asm.tree@default:default,org.objectweb.asm@default:default,slf4j.api@default:default,slf4j.simple@default:false"/>\r
<booleanAttribute key="tracing" value="false"/>\r
<booleanAttribute key="useCustomFeatures" value="false"/>\r
<booleanAttribute key="useDefaultConfigArea" value="true"/>\r
<button label="Futtatás" onClick="@command('executeJob')" />\r
<button sclass="buttonboldfont" label="Leállítás" onClick="@command('shutdown')" autodisable="self" disabled="@load(jlm.shutdownDisabled)" />\r
<button sclass="buttonboldfont" label="Elindítás" onClick="@command('startup')" autodisable="self" disabled="@load(jlm.startupDisabled)" />\r
- <button sclass="buttonboldfont" label="NEXIO szinkronizálás" onClick="@command('restartNexio')" autodisable="self" />\r
+ <button sclass="buttonboldfont" label="NEXIO szinkronizálás" onClick="@command('restartNexio')" visible="${not sessionScope.nexioDisable}" />\r
</div>\r
\r
\r
<menuitem sclass="rozsda" label="Hiányzó anyagok" onClick="@command('navigate', action='missingmaterials')" disabled="${not sessionScope.userPrincipal.submitter or sessionScope.userPrincipal.anonymous}" />\r
</menupopup>\r
</menu>\r
- <menu sclass="whitemenu" label="Statisztikák">\r
+ <menu sclass="whitemenu" label="Statisztikák" visible="${not sessionScope.guiStatisticsDisable}">\r
<menupopup>\r
<menuitem sclass="rozsda" label="Folyamat tevékenységek" onClick="@command('navigate', action='statistics')" disabled="${not sessionScope.userPrincipal.admin or sessionScope.userPrincipal.anonymous}" />\r
<menuitem sclass="rozsda" label="Híranyag gyártás" onClick="@command('navigate', action='newshistory')" disabled="${not sessionScope.userPrincipal.admin or sessionScope.userPrincipal.anonymous}" />\r
</menupopup>\r
</menu>\r
\r
- <menu sclass="whitemenu" label="${labels.menu_help}" >\r
+ <menu sclass="whitemenu" label="${labels.menu_help}" visible="${not sessionScope.guiHelpDisable}">\r
<menupopup>\r
<menuitem sclass="rozsda" label="${labels.menu_content}" href="http://10.10.1.27:90/docs" target="_blank" />\r
<menuitem sclass="rozsda" label="${labels.menu_version}" href="/resource/help.html" target="_blank" />\r
<toolbarbutton image="/img/baseline_edit_black_18dp.png" autodisable="self" onClick="@command('openMetaDataDialog')"\r
disabled="@load(not sessionScope.userPrincipal.editor or sessionScope.userPrincipal.anonymous or vm.selectedObject eq null)" label="Szerkesztés" />\r
<separator />\r
- <toolbarbutton autodisable="self" c:onClick="pushTcIn('${arg.field}')" label="IN" />\r
- <toolbarbutton autodisable="self" c:onClick="pushTcOut('${arg.field}')" label="OUT" />\r
+ <toolbarbutton autodisable="self" c:onClick="pushTcIn('${arg.field}')" label="IN" visible="${not sessionScope.guiEditorDisable}" />\r
+ <toolbarbutton autodisable="self" c:onClick="pushTcOut('${arg.field}')" label="OUT" visible="${not sessionScope.guiEditorDisable}" />\r
</div>\r
</div>\r
</toolbar>\r
private List<String> adSubmitterMap;\r
private List<String> adEditorMap;\r
private List<MediaCubeAccount> localAccounts;\r
- private String localAdmins;\r
- private String localSubmitters;\r
- private String localEditors;\r
+ private List<String> localAdmins;\r
+ private List<String> localSubmitters;\r
+ private List<String> localEditors;\r
\r
public List<String> getAdAdminMap() {\r
return adAdminMap;\r
return localAccounts;\r
}\r
\r
- public String getLocalAdmins() {\r
+ public List<String> getLocalAdmins() {\r
return localAdmins;\r
}\r
\r
- public String getLocalEditors() {\r
+ public List<String> getLocalEditors() {\r
return localEditors;\r
}\r
\r
- public String getLocalSubmitters() {\r
+ public List<String> getLocalSubmitters() {\r
return localSubmitters;\r
}\r
\r
this.localAccounts = localAccounts;\r
}\r
\r
- public void setLocalAdmins(String localAdmins) {\r
+ public void setLocalAdmins(List<String> localAdmins) {\r
this.localAdmins = localAdmins;\r
}\r
\r
- public void setLocalEditors(String localEditors) {\r
+ public void setLocalEditors(List<String> localEditors) {\r
this.localEditors = localEditors;\r
}\r
\r
- public void setLocalSubmitters(String localSubmitters) {\r
+ public void setLocalSubmitters(List<String> localSubmitters) {\r
this.localSubmitters = localSubmitters;\r
}\r
\r
package user.jobengine.zk.util;\r
\r
-import java.io.FileInputStream;\r
import java.lang.invoke.MethodHandles;\r
import java.net.URL;\r
import java.util.ArrayList;\r
import java.util.Hashtable;\r
import java.util.LinkedHashSet;\r
import java.util.List;\r
-import java.util.Properties;\r
import java.util.Set;\r
\r
import javax.naming.Context;\r
import org.apache.logging.log4j.Logger;\r
\r
import user.commons.ListUtils;\r
+import user.jobengine.zk.model.MediaCubeAuthentication;\r
\r
public class LDAPUserHandler {\r
private static final String OTHER_MAILBOX = "otherMailbox";\r
private static final String LDAP_ADDRESS = "ldap://%s:%s";\r
private static final String AD_NONSECUREPORT = "ad_nonsecureport";\r
private static final String AD_HOST = "ad_host";\r
- // private static final String TECH_ACCOUNT = "tech_account";\r
- // private static final String TECH_PASSWORD = "tech_password";\r
+ // private static final String TECH_ACCOUNT = "tech_account";\r
+ // private static final String TECH_PASSWORD = "tech_password";\r
private static final String SIMPLE_AUTH = "simple";\r
private static final String CTX_FACTORY = "com.sun.jndi.ldap.LdapCtxFactory";\r
private static final String DOMAIN_ACCOUNT = "%s@%s";\r
private static final String AD_ADMIN_MAP = "ad_admin_map";\r
private static final String AD_SUBMITTER_MAP = "ad_submitter_map";\r
private static final String AD_EDITOR_MAP = "ad_editor_map";\r
+ private static MediaCubeAuthentication mediaCubeAuthentication;\r
\r
public static void main(String[] args) throws Exception {\r
- // Properties cfg = new Properties();\r
- // cfg.setProperty("ad_host", "10.10.254.11");\r
- // cfg.setProperty("ad_nonsecureport", "389");\r
- // cfg.setProperty("ad_base_dn", "DC=intra,DC=echotv,DC=hu");\r
+ // Properties cfg = new Properties();\r
+ // cfg.setProperty("ad_host", "10.10.254.11");\r
+ // cfg.setProperty("ad_nonsecureport", "389");\r
+ // cfg.setProperty("ad_base_dn", "DC=intra,DC=echotv,DC=hu");\r
\r
- Properties cfg = new Properties();\r
+ // Properties cfg = new Properties();\r
URL srcLocation = MethodHandles.lookup().lookupClass().getProtectionDomain().getCodeSource().getLocation();\r
URL location = new URL(srcLocation, "../../-configuration/mediacube-auth.properties");\r
- cfg.load(new FileInputStream(location.toURI().getPath().toString()));\r
+ // cfg.load(new FileInputStream(location.toURI().getPath().toString()));\r
\r
- //LDAPHandler h = new LDAPHandler("echotest", "aA123456+", cfg);\r
- //LDAPHandler h = new LDAPHandler("stibor.adm", "Qwer1234", cfg);\r
- LDAPUserHandler h = new LDAPUserHandler("nagy.ilona", "k0rianDER", cfg);\r
+ // LDAPHandler h = new LDAPHandler("echotest", "aA123456+", cfg);\r
+ // LDAPHandler h = new LDAPHandler("stibor.adm", "Qwer1234", cfg);\r
+ LDAPUserHandler h = new LDAPUserHandler("nagy.ilona", "k0rianDER", mediaCubeAuthentication);\r
\r
UserPrincipal user = h.getUserPrincipal();\r
System.out.println(user);\r
- //List<String> allGroups = h.getAllGroups();\r
+ // List<String> allGroups = h.getAllGroups();\r
}\r
\r
- private Properties cfg = null;\r
+ // private Properties cfg = null;\r
private String account;\r
private String password;\r
private String domain;\r
\r
- public LDAPUserHandler(String account, String password, Properties cfg) {\r
+ public LDAPUserHandler(String account, String password, MediaCubeAuthentication mediaCubeAuthentication) {\r
this.account = account;\r
this.password = password;\r
- this.domain = cfg.getProperty(AD_BASE_DN);\r
+ this.domain = mediaCubeAuthentication.getAdBaseDn();\r
if (domain != null)\r
domain = domain.toLowerCase().replace("dc=", "").replace(",", ".");\r
- this.cfg = cfg;\r
+ this.mediaCubeAuthentication = mediaCubeAuthentication;\r
}\r
\r
- private boolean checkMembership(Properties cfg, String property, List<String> memberOf) {\r
- String groupMap = cfg.getProperty(property);\r
- if (groupMap == null)\r
+ private boolean checkMembership(List<String> property, List<String> memberOf) {\r
+ // String groupMap = cfg.getProperty(property);\r
+ if (property == null)\r
return false;\r
- List<String> remains = ListUtils.intersect(Arrays.asList(groupMap.split(",")), memberOf);\r
+ List<String> remains = ListUtils.intersect(Arrays.asList(property.toString().split(",")), memberOf);\r
return (remains.size() > 0);\r
\r
}\r
SearchControls searchCtls = new SearchControls();\r
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);\r
String searchFilter = "(&(objectClass=group))";\r
- String searchBase = cfg.getProperty(AD_BASE_DN);\r
+ String searchBase = mediaCubeAuthentication.getAdBaseDn();\r
String returnedAtts[] = { "member" };\r
searchCtls.setReturningAttributes(returnedAtts);\r
answer = ctx.search(searchBase, searchFilter, searchCtls);\r
result.add(groupName);\r
System.out.println(groupName);\r
\r
- // List<String> parentGroups = getMemberOf(ctx, groupName);\r
- // for (String group : parentGroups)\r
- // System.out.println("\t" + group);\r
+ // List<String> parentGroups = getMemberOf(ctx, groupName);\r
+ // for (String group : parentGroups)\r
+ // System.out.println("\t" + group);\r
\r
}\r
\r
\r
private LdapContext getContext(String account, String password) throws Exception {\r
Hashtable<String, String> env = new Hashtable<>();\r
- String ldapURL = String.format(LDAP_ADDRESS, cfg.getProperty(AD_HOST), cfg.getProperty(AD_NONSECUREPORT));\r
+ String ldapURL = String.format(LDAP_ADDRESS, mediaCubeAuthentication.getAdHost(), mediaCubeAuthentication.getAdNonSecurePort());\r
env.put(Context.PROVIDER_URL, ldapURL);\r
env.put(Context.INITIAL_CONTEXT_FACTORY, CTX_FACTORY);\r
env.put(Context.SECURITY_AUTHENTICATION, SIMPLE_AUTH);\r
SearchControls searchCtls = new SearchControls();\r
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);\r
String searchFilter = String.format("(&(CN=%s))", cn);\r
- String searchBase = cfg.getProperty("ad_base_dn");\r
+ String searchBase = mediaCubeAuthentication.getAdBaseDn();\r
answer = ctx.search(searchBase, searchFilter, searchCtls);\r
if (answer.hasMoreElements()) {\r
SearchResult sr = answer.next();\r
SearchControls searchCtls = new SearchControls();\r
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);\r
String searchFilter = String.format("(&(sAMAccountName=%s))", account);\r
- String searchBase = cfg.getProperty(AD_BASE_DN);\r
+ String searchBase = mediaCubeAuthentication.getAdBaseDn();\r
answer = ctx.search(searchBase, searchFilter, searchCtls);\r
if (answer.hasMoreElements()) {\r
result = new UserPrincipal(account);\r
memberOf = ListUtils.distinctUnion(memberOf, parentGroups);\r
}\r
}\r
- updateMembership(userPrincipal, memberOf, cfg);\r
+ updateMembership(userPrincipal, memberOf, mediaCubeAuthentication);\r
}\r
\r
- public void updateMembership(UserPrincipal userPrincipal, List<String> memberOf, Properties cfg) {\r
+ public void updateMembership(UserPrincipal userPrincipal, List<String> memberOf, MediaCubeAuthentication mediaCubeAuthentication) {\r
if (memberOf == null)\r
return;\r
\r
- if (checkMembership(cfg, AD_ADMIN_MAP, memberOf)) {\r
+ if (checkMembership(mediaCubeAuthentication.getAdAdminMap(), memberOf)) {\r
userPrincipal.setAdmin(true);\r
userPrincipal.setSubmitter(true);\r
userPrincipal.setEditor(true);\r
}\r
- if (checkMembership(cfg, AD_SUBMITTER_MAP, memberOf))\r
+ if (checkMembership(mediaCubeAuthentication.getAdSubmitterMap(), memberOf))\r
userPrincipal.setSubmitter(true);\r
- if (checkMembership(cfg, AD_EDITOR_MAP, memberOf))\r
+ if (checkMembership(mediaCubeAuthentication.getAdEditorMap(), memberOf))\r
userPrincipal.setEditor(true);\r
}\r
\r
package user.jobengine.zk.util;\r
\r
-import java.util.Arrays;\r
import java.util.List;\r
-import java.util.Properties;\r
\r
import org.apache.commons.lang.StringUtils;\r
\r
+import user.jobengine.zk.model.MediaCubeAccount;\r
+import user.jobengine.zk.model.MediaCubeAuthentication;\r
+\r
public class LocalUserHandler {\r
- private static final String LOCAL_ACCOUNTS = "local_accounts";\r
- private static final String LOCAL_ADMINS = "local_admins";\r
- private static final String LOCAL_SUBMITTERS = "local_submitters";\r
- private static final String LOCAL_EDITORS = "local_submitters";\r
+ // private static final String LOCAL_ACCOUNTS = "local_accounts";\r
+ // private static final String LOCAL_ADMINS = "local_admins";\r
+ // private static final String LOCAL_SUBMITTERS = "local_submitters";\r
+ // private static final String LOCAL_EDITORS = "local_submitters";\r
+ private MediaCubeAuthentication mediaCubeAuthentication;\r
private String account;\r
private String password;\r
- private Properties cfg;\r
+ // private Properties cfg;\r
\r
- public LocalUserHandler(String account, String password, Properties cfg) {\r
+ public LocalUserHandler(String account, String password, MediaCubeAuthentication mediaCubeAuthentication) {\r
this.account = account;\r
this.password = password;\r
- this.cfg = cfg;\r
+ this.mediaCubeAuthentication = mediaCubeAuthentication;\r
}\r
\r
- private boolean authenticateLocal(String account, String password, String users) {\r
+ private boolean authenticateLocal(String account, String password, MediaCubeAccount user) {\r
if (StringUtils.isBlank(account) || account.length() < 3)\r
return false;\r
if (StringUtils.isBlank(password) || password.length() < 3)\r
return false;\r
- if (StringUtils.isBlank(users) || users.length() < 7)\r
- return false;\r
\r
- return users.contains(String.format("%s:%s", account, password));\r
+ return (account.equals(user.getUser()) && password.equals(user.getPassword()));\r
}\r
\r
public UserPrincipal getUserPrincipal() {\r
- String users = cfg.getProperty(LOCAL_ACCOUNTS);\r
+ // String users = cfg.getProperty(LOCAL_ACCOUNTS);\r
UserPrincipal result = null;\r
- String[] userList = users.split(",");\r
- for (String user : userList) {\r
- if (authenticateLocal(account, password, user))\r
+ List<MediaCubeAccount> userList = mediaCubeAuthentication.getLocalAccounts();\r
+ for (MediaCubeAccount user : userList) {\r
+ if (authenticateLocal(account, password, user)) {\r
result = new UserPrincipal(account);\r
- else\r
- continue;\r
- String[] userInfo = user.split(":");\r
- if (userInfo.length > 2)\r
- result.setEmail(userInfo[2]);\r
+ result.setEmail(user.getEmail());\r
+ break;\r
+ }\r
}\r
\r
if (result != null) {\r
- boolean isAdmin = isMemberOf(account, cfg.getProperty(LOCAL_ADMINS));\r
- boolean isSubmitter = isMemberOf(account, cfg.getProperty(LOCAL_SUBMITTERS));\r
- boolean isEditor = isMemberOf(account, cfg.getProperty(LOCAL_EDITORS));\r
+ boolean isAdmin = isMemberOf(account, mediaCubeAuthentication.getLocalAdmins());\r
+ boolean isSubmitter = isMemberOf(account, mediaCubeAuthentication.getLocalSubmitters());\r
+ boolean isEditor = isMemberOf(account, mediaCubeAuthentication.getLocalEditors());\r
result.setAdmin(isAdmin);\r
if (isAdmin || isSubmitter)\r
result.setSubmitter(true);\r
return result;\r
}\r
\r
- private boolean isMemberOf(String account, String groupMembers) {\r
- List<String> groupMemberList = Arrays.asList(groupMembers.split(","));\r
- return groupMemberList.contains(account);\r
+ private boolean isMemberOf(String account, List<String> groupMembers) {\r
+ if (groupMembers == null || groupMembers.isEmpty())\r
+ return false;\r
+\r
+ return groupMembers.contains(account);\r
}\r
\r
}\r
public static final String JOBLISTENER = "joblistener";\r
public static final String MENUMODEL = "menuModel";\r
public static final String HISTORY = "history";\r
+ public static final String NEXIO_DISABLE = "nexio.disable";\r
+ public static final String GUI_STAT_DISABLE = "gui.statistics.disable";\r
+ public static final String GUI_HELP_DISABLE = "gui.help.disable";\r
+ public static final String GUI_EDITOR_DISABLE = "gui.editor.disable";\r
+ private static MediaCubeConfig mediaCubeConfig = new MediaCubeConfig();\r
\r
public static boolean authenticate(String account, String password) {\r
Properties cfg = getConfiguration();\r
- LocalUserHandler localUserHandler = new LocalUserHandler(account, password, cfg);\r
+ // MediaCubeConfig mediaCubeConfig = getMediaCubeConfig();\r
+ LocalUserHandler localUserHandler = new LocalUserHandler(account, password, mediaCubeConfig.getAuthentication());\r
UserPrincipal userPrincipal = localUserHandler.getUserPrincipal();\r
+ // Object nexioStatus = System.getProperty(NEXIO);\r
if (userPrincipal == null) {\r
- LDAPUserHandler ldapUserHandler = new LDAPUserHandler(account, password, cfg);\r
+ LDAPUserHandler ldapUserHandler = new LDAPUserHandler(account, password, mediaCubeConfig.getAuthentication());\r
userPrincipal = ldapUserHandler.getUserPrincipal();\r
}\r
\r
return false;\r
\r
setAttribute(USERPRINCIPAL, userPrincipal);\r
+ try {\r
+ setAttribute("nexioDisable", Boolean.parseBoolean(System.getProperty(NEXIO_DISABLE)));\r
+ } catch (Exception e) {\r
+ logger.catching(e);\r
+ }\r
+\r
+ try {\r
+ setAttribute("guiStatisticsDisable", Boolean.parseBoolean(System.getProperty(GUI_STAT_DISABLE)));\r
+ } catch (Exception e) {\r
+ logger.catching(e);\r
+ }\r
+\r
+ try {\r
+ setAttribute("guiHelpDisable", Boolean.parseBoolean(System.getProperty(GUI_HELP_DISABLE)));\r
+ } catch (Exception e) {\r
+ logger.catching(e);\r
+ }\r
+\r
+ try {\r
+ setAttribute("guiEditorDisable", Boolean.parseBoolean(System.getProperty(GUI_EDITOR_DISABLE)));\r
+ } catch (Exception e) {\r
+ logger.catching(e);\r
+ }\r
+\r
return true;\r
}\r
\r
}\r
\r
static public Object getAttribute(String name) {\r
- // HttpSession session = (HttpSession) (Executions.getCurrent()).getDesktop().getSession().getNativeSession();\r
+ // HttpSession session = (HttpSession)\r
+ // (Executions.getCurrent()).getDesktop().getSession().getNativeSession();\r
Session zkSession = Sessions.getCurrent();\r
if (zkSession == null)\r
return null;\r
\r
private static Properties getConfiguration() {\r
\r
- MediaCubeConfig mediaCubeConfig = getMediaCubeConfig();\r
+ mediaCubeConfig = getMediaCubeConfig();\r
+ // setMediaCubeAuthentication(mediaCubeConfig.getAuthentication());\r
Properties cfg = new Properties();\r
try (InputStream is = new FileInputStream(System.getProperty(AUTH_LOCATION))) {\r
cfg.load(is);\r
public static void logout() {\r
setAttribute(USERPRINCIPAL, null);\r
setAttribute(HISTORY, null);\r
+ setAttribute(NEXIO_DISABLE, null);\r
+ setAttribute(GUI_STAT_DISABLE, null);\r
+ setAttribute(GUI_HELP_DISABLE, null);\r
+ setAttribute(GUI_EDITOR_DISABLE, null);\r
+\r
setAttribute(IndexModel.class.getCanonicalName(), null);\r
cleanup();\r
}\r
}\r
\r
static public void setAttribute(String name, Object obj) {\r
- // HttpSession session = (HttpSession) (Executions.getCurrent()).getDesktop().getSession().getNativeSession();\r
+ // HttpSession session = (HttpSession)\r
+ // (Executions.getCurrent()).getDesktop().getSession().getNativeSession();\r
Session zkSession = Sessions.getCurrent();\r
if (zkSession == null)\r
return;\r
if (session != null)\r
session.setAttribute(name, obj);\r
}\r
-\r
}
\ No newline at end of file