diff --git a/build.gradle b/build.gradle
index 60a824edcd..038b61d709 100644
--- a/build.gradle
+++ b/build.gradle
@@ -315,7 +315,6 @@ configure(webModule) {
compile(guiModule)
compile(webAuthModule)
- compile(group: 'com.haulmont.thirdparty', name: 'jespa', version: '1.0.7')
compile(group: 'commons-fileupload', name: 'commons-fileupload', version: '1.2.2')
compile(group: 'org.jasig.cas', name: 'cas-client-core', version: '3.1.10')
compile(group: 'org.springframework', name: 'spring-webmvc', version: '3.1.3.RELEASE')
@@ -324,8 +323,6 @@ configure(webModule) {
compile(group: 'com.haulmont.thirdparty', name: 'popupbutton', version: '2.2.1')
- runtime(group: 'com.haulmont.thirdparty', name: 'jcifs', version: '1.3.10')
-
provided(servletApi)
}
@@ -384,9 +381,6 @@ configure(webAuthModule) {
dependencies {
compile(globalModule)
- compile(group: 'com.haulmont.thirdparty', name: 'jespa', version: '1.0.7')
- runtime(group: 'com.haulmont.thirdparty', name: 'jcifs', version: '1.3.10')
-
provided(servletApi)
}
}
diff --git a/modules/global/src/cuba-credits.xml b/modules/global/src/cuba-credits.xml
index 745f13a8bf..abea06466f 100644
--- a/modules/global/src/cuba-credits.xml
+++ b/modules/global/src/cuba-credits.xml
@@ -155,8 +155,6 @@ included both in freemarker.jar and in the source code:
-
-
-
diff --git a/modules/web-auth/src/com/haulmont/cuba/web/auth/JespaAuthProvider.java b/modules/web-auth/src/com/haulmont/cuba/web/auth/JespaAuthProvider.java
deleted file mode 100644
index 41ceeb18f4..0000000000
--- a/modules/web-auth/src/com/haulmont/cuba/web/auth/JespaAuthProvider.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright (c) 2008-2013 Haulmont. All rights reserved.
- * Use is subject to license terms, see http://www.cuba-platform.com/license for details.
- */
-
-package com.haulmont.cuba.web.auth;
-
-import com.haulmont.cuba.core.global.*;
-import com.haulmont.cuba.core.sys.AppContext;
-import com.haulmont.cuba.security.global.LoginException;
-import jespa.http.HttpSecurityService;
-import jespa.ntlm.NtlmSecurityProvider;
-import jespa.security.PasswordCredential;
-import jespa.security.SecurityProviderException;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import javax.inject.Inject;
-import javax.servlet.*;
-import javax.servlet.http.HttpSession;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-
-/**
- * @author artamonov
- * @version $Id$
- */
-@SuppressWarnings("unused")
-public class JespaAuthProvider extends HttpSecurityService implements CubaAuthProvider {
-
- private static class DomainInfo {
- private String bindStr;
- private String acctName;
- private String acctPassword;
-
- private DomainInfo(String bindStr, String acctName, String acctPassword) {
- this.acctName = acctName;
- this.acctPassword = acctPassword;
- this.bindStr = bindStr;
- }
- }
-
- private static Map domains = new HashMap<>();
-
- private static String defaultDomain;
-
- private Log log = LogFactory.getLog(getClass());
-
- @Inject
- private Configuration configuration;
-
- @Inject
- private Messages messages;
-
- @Override
- public void init(FilterConfig filterConfig) throws ServletException {
-
- initDomains();
-
- Map properties = new HashMap<>();
-
- properties.put("jespa.bindstr", getBindStr());
- properties.put("jespa.service.acctname", getAcctName());
- properties.put("jespa.service.password", getAcctPassword());
- properties.put("jespa.account.canonicalForm", "3");
- properties.put("jespa.log.path", configuration.getConfig(GlobalConfig.class).getLogDir() + "/jespa.log");
-
- fillFromSystemProperties(properties);
-
- try {
- super.init(properties);
- } catch (SecurityProviderException e) {
- throw new ServletException(e);
- }
- }
-
- @Override
- public void destroy() {
- }
-
- @Override
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
- throws IOException, ServletException {
- log.debug("NTLM auth");
- super.doFilter(request, response, chain);
- }
-
- @Override
- public void authenticate(String login, String password, Locale loc) throws LoginException {
- DomainAliasesResolver aliasesResolver = AppBeans.get(DomainAliasesResolver.NAME);
-
- String domain;
- String userName;
-
- int atSignPos = login.indexOf("@");
- if (atSignPos >= 0) {
- String domainAlias = login.substring(atSignPos + 1);
- domain = aliasesResolver.getDomainName(domainAlias).toUpperCase();
- userName = login.substring(0, atSignPos);
- } else {
- int slashPos = login.indexOf('\\');
- if (slashPos <= 0) {
- throw new LoginException(
- messages.getMessage(ActiveDirectoryHelper.class, "activeDirectory.invalidName", loc),
- login
- );
- }
- String domainAlias = login.substring(0, slashPos);
- domain = aliasesResolver.getDomainName(domainAlias).toUpperCase();
- userName = login.substring(slashPos + 1);
- }
-
- DomainInfo domainInfo = domains.get(domain);
- if (domainInfo == null) {
- throw new LoginException(
- messages.getMessage(ActiveDirectoryHelper.class, "activeDirectory.unknownDomain", loc),
- domain
- );
- }
-
- Map params = new HashMap<>();
- params.put("bindstr", domainInfo.bindStr);
- params.put("service.acctname", domainInfo.acctName);
- params.put("service.password", domainInfo.acctPassword);
- params.put("account.canonicalForm", "3");
- fillFromSystemProperties(params);
-
- NtlmSecurityProvider provider = new NtlmSecurityProvider(params);
- try {
- PasswordCredential credential = new PasswordCredential(userName, password.toCharArray());
- provider.authenticate(credential);
- } catch (SecurityProviderException e) {
- throw new LoginException(
- messages.getMessage(ActiveDirectoryHelper.class, "activeDirectory.authenticationError", loc),
- e.getMessage()
- );
- }
- }
-
- @Override
- public boolean needAuth(ServletRequest request) {
- return true;
- }
-
- @Override
- public boolean authSupported(HttpSession session) {
- return true;
- }
-
- private void initDomains() {
- WebAuthConfig webConfig = configuration.getConfig(WebAuthConfig.class);
-
- String domainsStr = webConfig.getActiveDirectoryDomains();
- if (!StringUtils.isBlank(domainsStr)) {
- String[] strings = domainsStr.split(";");
- for (int i = 0; i < strings.length; i++) {
- String domain = strings[i];
- domain = domain.trim();
- if (!StringUtils.isBlank(domain)) {
- String[] parts = domain.split("\\|");
- if (parts.length != 4) {
- log.error("Invalid ActiveDirectory domain definition: " + domain);
- break;
- } else {
- domains.put(parts[0], new DomainInfo(parts[1], parts[2], parts[3]));
- if (i == 0)
- defaultDomain = parts[0];
- }
- }
- }
- }
- }
-
- public String getDefaultDomain() {
- return defaultDomain != null ? defaultDomain : "";
- }
-
- public String getBindStr() {
- return getBindStr(getDefaultDomain());
- }
-
- public String getBindStr(String domain) {
- initDomains();
- DomainInfo domainInfo = domains.get(domain);
- return domainInfo != null ? domainInfo.bindStr : "";
- }
-
- public String getAcctName() {
- return getAcctName(getDefaultDomain());
- }
-
- public String getAcctName(String domain) {
- initDomains();
- DomainInfo domainInfo = domains.get(domain);
- return domainInfo != null ? domainInfo.acctName : "";
- }
-
- public String getAcctPassword() {
- return getAcctPassword(getDefaultDomain());
- }
-
- public String getAcctPassword(String domain) {
- initDomains();
- DomainInfo domainInfo = domains.get(domain);
- return domainInfo != null ? domainInfo.acctPassword : "";
- }
-
- public void fillFromSystemProperties(Map params) {
- for (String name : AppContext.getPropertyNames()) {
- if (name.startsWith("jespa.")) {
- params.put(name, AppContext.getProperty(name));
- }
- }
- }
-}
diff --git a/modules/web/src/cuba-web-app.properties b/modules/web/src/cuba-web-app.properties
index c9c4c69daa..23b7e6a1b6 100644
--- a/modules/web/src/cuba-web-app.properties
+++ b/modules/web/src/cuba-web-app.properties
@@ -79,9 +79,6 @@ cuba.web.kerberosAuthModule=AUTH.HAULMONT.COM
cuba.web.loginDialogDefaultUser=admin
cuba.web.loginDialogDefaultPassword=admin
-# Jespa logging level (ActiveDirectory integration)
-jespa.log.level=3
-
###############################################################################
# Presentation #
###############################################################################