diff --git a/build.gradle b/build.gradle index b4bae9793..5b7408e0b 100644 --- a/build.gradle +++ b/build.gradle @@ -124,6 +124,7 @@ subprojects { mavenCentral() jcenter() maven { url "https://maven.eveoh.nl/content/repositories/releases" } + maven { url "http://mvn.gt.igexin.com/nexus/content/repositories/releases"} maven { url "https://plugins.gradle.org/m2/" } maven { url "http://repo.spring.io/plugins-release" } maven { url "https://repo.spring.io/milestone" } @@ -319,7 +320,8 @@ subprojects { } } - /* task checkenv<<{ + task checkenv{ + println 'check env for project ' //项目名 println project.name //项目相对路径 @@ -329,16 +331,18 @@ subprojects { //项目的绝对路径 println project.projectDir //项目的build文件绝对路径 - println project.buildDir + println "buildDir " +project.buildDir //项目所在的group println project.group //项目的版本号 println project.version //项目的ant对象 println project.ant - }*/ + + } task copyjar2Release(type: Copy) { + println "$buildDir/libs/ to $rootDir/build/jars/" into "$rootDir/build/jars/" from "$buildDir/libs/" include '*.jar' @@ -361,10 +365,9 @@ subprojects { from "$buildDir/libs/" } - //task buildRelease(dependsOn:['build','war','copyjar2Release','copyWar2Release','copyotherWar2Release','copydemoWar2Release']) << { - //task buildRelease(dependsOn:['copyjar2Release','copyWar2Release','copyotherWar2Release','copydemoWar2Release']) << { - // println 'Build MaxKey '+project.name +' complete .' - //} + task buildRelease(dependsOn:['build','jar','copyjar2Release']) { + println 'Build MaxKey '+project.name +' complete .' + } } diff --git a/buildrelease.bat b/buildrelease.bat index ded25d50d..64b4f09d8 100644 --- a/buildrelease.bat +++ b/buildrelease.bat @@ -14,7 +14,6 @@ call %GRADLE_HOME%/bin/gradle war call %GRADLE_HOME%/bin/gradle buildRelease -call %GRADLE_HOME%/bin/gradle buildReleaseGear cd build rd /q /s libs diff --git a/maxkey-client-sdk/.gitignore b/maxkey-client-sdk/.gitignore new file mode 100644 index 000000000..84c048a73 --- /dev/null +++ b/maxkey-client-sdk/.gitignore @@ -0,0 +1 @@ +/build/ diff --git a/maxkey-core/.gitignore b/maxkey-core/.gitignore new file mode 100644 index 000000000..84c048a73 --- /dev/null +++ b/maxkey-core/.gitignore @@ -0,0 +1 @@ +/build/ diff --git a/maxkey-core/src/test/java/com/connsec/util/PathUtilsTest.java b/maxkey-core/src/test/java/com/connsec/util/PathUtilsTest.java index 3a0b6f97e..2e94220f6 100644 --- a/maxkey-core/src/test/java/com/connsec/util/PathUtilsTest.java +++ b/maxkey-core/src/test/java/com/connsec/util/PathUtilsTest.java @@ -6,8 +6,8 @@ import org.maxkey.util.PathUtils; public class PathUtilsTest { @Test public void test() { - System.out.println(PathUtils.getInstance().getAppPath()); - System.out.println(PathUtils.getInstance().getWebInf()); - System.out.println(PathUtils.getInstance().getClassPath()); + //System.out.println(PathUtils.getInstance().getAppPath()); + //System.out.println(PathUtils.getInstance().getWebInf()); + //System.out.println(PathUtils.getInstance().getClassPath()); } } diff --git a/maxkey-dao/.gitignore b/maxkey-dao/.gitignore new file mode 100644 index 000000000..84c048a73 --- /dev/null +++ b/maxkey-dao/.gitignore @@ -0,0 +1 @@ +/build/ diff --git a/maxkey-dao/src/test/java/org/apache/mybatis/jpa/test/FormBasedDetailsServiceTest.java b/maxkey-dao/src/test/java/org/apache/mybatis/jpa/test/FormBasedDetailsServiceTest.java index c3e9a44c1..49c328772 100644 --- a/maxkey-dao/src/test/java/org/apache/mybatis/jpa/test/FormBasedDetailsServiceTest.java +++ b/maxkey-dao/src/test/java/org/apache/mybatis/jpa/test/FormBasedDetailsServiceTest.java @@ -25,7 +25,7 @@ public class FormBasedDetailsServiceTest { public static AppsFormBasedDetailsService service; public AppsFormBasedDetailsService getservice() { - service=(AppsFormBasedDetailsService)WebContext.getBean("formBasedDetailsService"); + service=(AppsFormBasedDetailsService)WebContext.getBean("appsFormBasedDetailsService"); return service; } diff --git a/maxkey-jose-jwt/.gitignore b/maxkey-jose-jwt/.gitignore new file mode 100644 index 000000000..84c048a73 --- /dev/null +++ b/maxkey-jose-jwt/.gitignore @@ -0,0 +1 @@ +/build/ diff --git a/maxkey-protocols/maxkey-protocol-authorize/.gitignore b/maxkey-protocols/maxkey-protocol-authorize/.gitignore new file mode 100644 index 000000000..84c048a73 --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-authorize/.gitignore @@ -0,0 +1 @@ +/build/ diff --git a/maxkey-protocols/maxkey-protocol-cas/bin/main/.gitignore b/maxkey-protocols/maxkey-protocol-authorize/bin/main/.gitignore similarity index 100% rename from maxkey-protocols/maxkey-protocol-cas/bin/main/.gitignore rename to maxkey-protocols/maxkey-protocol-authorize/bin/main/.gitignore diff --git a/maxkey-protocols/maxkey-protocol-authorize/build.gradle b/maxkey-protocols/maxkey-protocol-authorize/build.gradle index 30d89f65e..bf5e08612 100644 --- a/maxkey-protocols/maxkey-protocol-authorize/build.gradle +++ b/maxkey-protocols/maxkey-protocol-authorize/build.gradle @@ -10,7 +10,7 @@ dependencies { compile project(":maxkey-dao") compile project(":maxkey-jose-jwt") compile project(":maxkey-client-sdk") - compile project(":maxkey-protocols:maxkey-protocol-oauth-2.0") - compile project(":maxkey-protocols:maxkey-protocol-saml-2.0") + //compileOnly project(":maxkey-protocols:maxkey-protocol-oauth-2.0") + //compileOnly project(":maxkey-protocols:maxkey-protocol-saml-2.0") } \ No newline at end of file diff --git a/maxkey-protocols/maxkey-protocol-authorize/src/main/java/org/maxkey/authz/endpoint/AuthorizeEndpoint.java b/maxkey-protocols/maxkey-protocol-authorize/src/main/java/org/maxkey/authz/endpoint/AuthorizeEndpoint.java index cb14e6491..863f03a45 100644 --- a/maxkey-protocols/maxkey-protocol-authorize/src/main/java/org/maxkey/authz/endpoint/AuthorizeEndpoint.java +++ b/maxkey-protocols/maxkey-protocol-authorize/src/main/java/org/maxkey/authz/endpoint/AuthorizeEndpoint.java @@ -5,16 +5,13 @@ package org.maxkey.authz.endpoint; import javax.servlet.http.HttpServletRequest; -import org.maxkey.authz.oauth2.provider.ClientDetailsService; -import org.maxkey.client.utils.HttpEncoder; + import org.maxkey.constants.PROTOCOLS; import org.maxkey.dao.service.AppsCasDetailsService; import org.maxkey.domain.apps.Apps; -import org.maxkey.domain.apps.oauth2.provider.ClientDetails; import org.maxkey.web.WebConstants; import org.maxkey.web.WebContext; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -26,12 +23,6 @@ import org.springframework.web.servlet.ModelAndView; */ @Controller public class AuthorizeEndpoint extends AuthorizeBaseEndpoint{ - private static final String OAUTH_V20_AUTHORIZATION_URL = "%s/oauth/v20/authorize?client_id=%s&response_type=code&redirect_uri=%s&approval_prompt=auto"; - - @Autowired - @Qualifier("oauth20JdbcClientDetailsService") - private ClientDetailsService clientDetailsService; - @Autowired AppsCasDetailsService casDetailsService; @@ -51,23 +42,13 @@ public class AuthorizeEndpoint extends AuthorizeBaseEndpoint{ }else if (application.getProtocol().equalsIgnoreCase(PROTOCOLS.FORMBASED)){ modelAndView=WebContext.forward("/authz/formbased/"+id); }else if (application.getProtocol().equalsIgnoreCase(PROTOCOLS.OAUTH20)){ - ClientDetails clientDetails =clientDetailsService.loadClientByClientId(application.getId()); - _logger.debug(""+clientDetails); - String authorizationUrl = String.format(OAUTH_V20_AUTHORIZATION_URL, - applicationConfig.getServerPrefix(), - clientDetails.getClientId(), - HttpEncoder.encode(clientDetails.getRegisteredRedirectUri().toArray()[0].toString()) - ); - - _logger.debug("authorizationUrl "+authorizationUrl); - - modelAndView=WebContext.redirect(authorizationUrl); + modelAndView=WebContext.forward("/authz/oauthv20/"+application.getId()); }else if (application.getProtocol().equalsIgnoreCase(PROTOCOLS.OPEN_ID_CONNECT)){ // modelAndView=new ModelAndView("openid connect"); }else if (application.getProtocol().equalsIgnoreCase(PROTOCOLS.SAML20)){ modelAndView=WebContext.forward("/authz/saml20/idpinit/"+application.getId()); }else if (application.getProtocol().equalsIgnoreCase(PROTOCOLS.TOKENBASED)){ - modelAndView=WebContext.forward("/authorize/tokenbased/"+id); + modelAndView=WebContext.forward("/authz/tokenbased/"+id); }else if (application.getProtocol().equalsIgnoreCase(PROTOCOLS.CAS)){ modelAndView=WebContext.forward("/authz/cas/"+id); }else if (application.getProtocol().equalsIgnoreCase(PROTOCOLS.DESKTOP)){ diff --git a/maxkey-protocols/maxkey-protocol-cas/bin/test/.gitignore b/maxkey-protocols/maxkey-protocol-cas/bin/test/.gitignore deleted file mode 100644 index c2d9872a1..000000000 --- a/maxkey-protocols/maxkey-protocol-cas/bin/test/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/com/ diff --git a/maxkey-protocols/maxkey-protocol-cas/build/libs/maxkey-protocol-cas-1.0.0.RELEASE.jar b/maxkey-protocols/maxkey-protocol-cas/build/libs/maxkey-protocol-cas-1.0.0.RELEASE.jar new file mode 100644 index 000000000..ac9a70a15 Binary files /dev/null and b/maxkey-protocols/maxkey-protocol-cas/build/libs/maxkey-protocol-cas-1.0.0.RELEASE.jar differ diff --git a/maxkey-protocols/maxkey-protocol-cas/build/reports/tests/test/css/base-style.css b/maxkey-protocols/maxkey-protocol-cas/build/reports/tests/test/css/base-style.css new file mode 100644 index 000000000..4afa73e3d --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-cas/build/reports/tests/test/css/base-style.css @@ -0,0 +1,179 @@ + +body { + margin: 0; + padding: 0; + font-family: sans-serif; + font-size: 12pt; +} + +body, a, a:visited { + color: #303030; +} + +#content { + padding-left: 50px; + padding-right: 50px; + padding-top: 30px; + padding-bottom: 30px; +} + +#content h1 { + font-size: 160%; + margin-bottom: 10px; +} + +#footer { + margin-top: 100px; + font-size: 80%; + white-space: nowrap; +} + +#footer, #footer a { + color: #a0a0a0; +} + +#line-wrapping-toggle { + vertical-align: middle; +} + +#label-for-line-wrapping-toggle { + vertical-align: middle; +} + +ul { + margin-left: 0; +} + +h1, h2, h3 { + white-space: nowrap; +} + +h2 { + font-size: 120%; +} + +ul.tabLinks { + padding-left: 0; + padding-top: 10px; + padding-bottom: 10px; + overflow: auto; + min-width: 800px; + width: auto !important; + width: 800px; +} + +ul.tabLinks li { + float: left; + height: 100%; + list-style: none; + padding-left: 10px; + padding-right: 10px; + padding-top: 5px; + padding-bottom: 5px; + margin-bottom: 0; + -moz-border-radius: 7px; + border-radius: 7px; + margin-right: 25px; + border: solid 1px #d4d4d4; + background-color: #f0f0f0; +} + +ul.tabLinks li:hover { + background-color: #fafafa; +} + +ul.tabLinks li.selected { + background-color: #c5f0f5; + border-color: #c5f0f5; +} + +ul.tabLinks a { + font-size: 120%; + display: block; + outline: none; + text-decoration: none; + margin: 0; + padding: 0; +} + +ul.tabLinks li h2 { + margin: 0; + padding: 0; +} + +div.tab { +} + +div.selected { + display: block; +} + +div.deselected { + display: none; +} + +div.tab table { + min-width: 350px; + width: auto !important; + width: 350px; + border-collapse: collapse; +} + +div.tab th, div.tab table { + border-bottom: solid #d0d0d0 1px; +} + +div.tab th { + text-align: left; + white-space: nowrap; + padding-left: 6em; +} + +div.tab th:first-child { + padding-left: 0; +} + +div.tab td { + white-space: nowrap; + padding-left: 6em; + padding-top: 5px; + padding-bottom: 5px; +} + +div.tab td:first-child { + padding-left: 0; +} + +div.tab td.numeric, div.tab th.numeric { + text-align: right; +} + +span.code { + display: inline-block; + margin-top: 0em; + margin-bottom: 1em; +} + +span.code pre { + font-size: 11pt; + padding-top: 10px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; + margin: 0; + background-color: #f7f7f7; + border: solid 1px #d0d0d0; + min-width: 700px; + width: auto !important; + width: 700px; +} + +span.wrapped pre { + word-wrap: break-word; + white-space: pre-wrap; + word-break: break-all; +} + +label.hidden { + display: none; +} \ No newline at end of file diff --git a/maxkey-protocols/maxkey-protocol-cas/build/reports/tests/test/css/style.css b/maxkey-protocols/maxkey-protocol-cas/build/reports/tests/test/css/style.css new file mode 100644 index 000000000..3dc4913e7 --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-cas/build/reports/tests/test/css/style.css @@ -0,0 +1,84 @@ + +#summary { + margin-top: 30px; + margin-bottom: 40px; +} + +#summary table { + border-collapse: collapse; +} + +#summary td { + vertical-align: top; +} + +.breadcrumbs, .breadcrumbs a { + color: #606060; +} + +.infoBox { + width: 110px; + padding-top: 15px; + padding-bottom: 15px; + text-align: center; +} + +.infoBox p { + margin: 0; +} + +.counter, .percent { + font-size: 120%; + font-weight: bold; + margin-bottom: 8px; +} + +#duration { + width: 125px; +} + +#successRate, .summaryGroup { + border: solid 2px #d0d0d0; + -moz-border-radius: 10px; + border-radius: 10px; +} + +#successRate { + width: 140px; + margin-left: 35px; +} + +#successRate .percent { + font-size: 180%; +} + +.success, .success a { + color: #008000; +} + +div.success, #successRate.success { + background-color: #bbd9bb; + border-color: #008000; +} + +.failures, .failures a { + color: #b60808; +} + +.skipped, .skipped a { + color: #c09853; +} + +div.failures, #successRate.failures { + background-color: #ecdada; + border-color: #b60808; +} + +ul.linkList { + padding-left: 0; +} + +ul.linkList li { + list-style: none; + margin-bottom: 5px; +} diff --git a/maxkey-protocols/maxkey-protocol-cas/build/reports/tests/test/index.html b/maxkey-protocols/maxkey-protocol-cas/build/reports/tests/test/index.html new file mode 100644 index 000000000..bb47baaec --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-cas/build/reports/tests/test/index.html @@ -0,0 +1,92 @@ + + + + + +Test results - Test Summary + + + + + +
+

Test Summary

+
+ + + + + +
+
+ + + + + + + +
+
+
0
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
-
+

duration

+
+
+
+
+
+
-
+

successful

+
+
+
+
+ +
+

Classes

+ + + + + + + + + + + + +
ClassTestsFailuresIgnoredDurationSuccess rate
+
+
+ +
+ + diff --git a/maxkey-protocols/maxkey-protocol-cas/build/reports/tests/test/js/report.js b/maxkey-protocols/maxkey-protocol-cas/build/reports/tests/test/js/report.js new file mode 100644 index 000000000..83bab4a19 --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-cas/build/reports/tests/test/js/report.js @@ -0,0 +1,194 @@ +(function (window, document) { + "use strict"; + + var tabs = {}; + + function changeElementClass(element, classValue) { + if (element.getAttribute("className")) { + element.setAttribute("className", classValue); + } else { + element.setAttribute("class", classValue); + } + } + + function getClassAttribute(element) { + if (element.getAttribute("className")) { + return element.getAttribute("className"); + } else { + return element.getAttribute("class"); + } + } + + function addClass(element, classValue) { + changeElementClass(element, getClassAttribute(element) + " " + classValue); + } + + function removeClass(element, classValue) { + changeElementClass(element, getClassAttribute(element).replace(classValue, "")); + } + + function initTabs() { + var container = document.getElementById("tabs"); + + tabs.tabs = findTabs(container); + tabs.titles = findTitles(tabs.tabs); + tabs.headers = findHeaders(container); + tabs.select = select; + tabs.deselectAll = deselectAll; + tabs.select(0); + + return true; + } + + function getCheckBox() { + return document.getElementById("line-wrapping-toggle"); + } + + function getLabelForCheckBox() { + return document.getElementById("label-for-line-wrapping-toggle"); + } + + function findCodeBlocks() { + var spans = document.getElementById("tabs").getElementsByTagName("span"); + var codeBlocks = []; + for (var i = 0; i < spans.length; ++i) { + if (spans[i].className.indexOf("code") >= 0) { + codeBlocks.push(spans[i]); + } + } + return codeBlocks; + } + + function forAllCodeBlocks(operation) { + var codeBlocks = findCodeBlocks(); + + for (var i = 0; i < codeBlocks.length; ++i) { + operation(codeBlocks[i], "wrapped"); + } + } + + function toggleLineWrapping() { + var checkBox = getCheckBox(); + + if (checkBox.checked) { + forAllCodeBlocks(addClass); + } else { + forAllCodeBlocks(removeClass); + } + } + + function initControls() { + if (findCodeBlocks().length > 0) { + var checkBox = getCheckBox(); + var label = getLabelForCheckBox(); + + checkBox.onclick = toggleLineWrapping; + checkBox.checked = false; + + removeClass(label, "hidden"); + } + } + + function switchTab() { + var id = this.id.substr(1); + + for (var i = 0; i < tabs.tabs.length; i++) { + if (tabs.tabs[i].id === id) { + tabs.select(i); + break; + } + } + + return false; + } + + function select(i) { + this.deselectAll(); + + changeElementClass(this.tabs[i], "tab selected"); + changeElementClass(this.headers[i], "selected"); + + while (this.headers[i].firstChild) { + this.headers[i].removeChild(this.headers[i].firstChild); + } + + var h2 = document.createElement("H2"); + + h2.appendChild(document.createTextNode(this.titles[i])); + this.headers[i].appendChild(h2); + } + + function deselectAll() { + for (var i = 0; i < this.tabs.length; i++) { + changeElementClass(this.tabs[i], "tab deselected"); + changeElementClass(this.headers[i], "deselected"); + + while (this.headers[i].firstChild) { + this.headers[i].removeChild(this.headers[i].firstChild); + } + + var a = document.createElement("A"); + + a.setAttribute("id", "ltab" + i); + a.setAttribute("href", "#tab" + i); + a.onclick = switchTab; + a.appendChild(document.createTextNode(this.titles[i])); + + this.headers[i].appendChild(a); + } + } + + function findTabs(container) { + return findChildElements(container, "DIV", "tab"); + } + + function findHeaders(container) { + var owner = findChildElements(container, "UL", "tabLinks"); + return findChildElements(owner[0], "LI", null); + } + + function findTitles(tabs) { + var titles = []; + + for (var i = 0; i < tabs.length; i++) { + var tab = tabs[i]; + var header = findChildElements(tab, "H2", null)[0]; + + header.parentNode.removeChild(header); + + if (header.innerText) { + titles.push(header.innerText); + } else { + titles.push(header.textContent); + } + } + + return titles; + } + + function findChildElements(container, name, targetClass) { + var elements = []; + var children = container.childNodes; + + for (var i = 0; i < children.length; i++) { + var child = children.item(i); + + if (child.nodeType === 1 && child.nodeName === name) { + if (targetClass && child.className.indexOf(targetClass) < 0) { + continue; + } + + elements.push(child); + } + } + + return elements; + } + + // Entry point. + + window.onload = function() { + initTabs(); + initControls(); + }; +} (window, window.document)); \ No newline at end of file diff --git a/maxkey-protocols/maxkey-protocol-cas/build/test-results/test/binary/output.bin b/maxkey-protocols/maxkey-protocol-cas/build/test-results/test/binary/output.bin new file mode 100644 index 000000000..e69de29bb diff --git a/maxkey-protocols/maxkey-protocol-cas/build/test-results/test/binary/output.bin.idx b/maxkey-protocols/maxkey-protocol-cas/build/test-results/test/binary/output.bin.idx new file mode 100644 index 000000000..f76dd238a Binary files /dev/null and b/maxkey-protocols/maxkey-protocol-cas/build/test-results/test/binary/output.bin.idx differ diff --git a/maxkey-protocols/maxkey-protocol-cas/build/test-results/test/binary/results.bin b/maxkey-protocols/maxkey-protocol-cas/build/test-results/test/binary/results.bin new file mode 100644 index 000000000..e69de29bb diff --git a/maxkey-protocols/maxkey-protocol-cas/build/tmp/jar/MANIFEST.MF b/maxkey-protocols/maxkey-protocol-cas/build/tmp/jar/MANIFEST.MF new file mode 100644 index 000000000..2357620ba --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-cas/build/tmp/jar/MANIFEST.MF @@ -0,0 +1,7 @@ +Manifest-Version: 1.0 +Implementation-Title: maxkey-protocol-cas +Implementation-Version: 1.0.0.RELEASE +Implementation-Date: 2019-11-10T12:35:40.160+08:00[Asia/Shanghai] +Created-By: org.maxkey +Implementation-Vendor: https://github.com/shimingxy/MaxKey + diff --git a/maxkey-protocols/maxkey-protocol-desktop/build/libs/maxkey-protocol-desktop-1.0.0.RELEASE.jar b/maxkey-protocols/maxkey-protocol-desktop/build/libs/maxkey-protocol-desktop-1.0.0.RELEASE.jar new file mode 100644 index 000000000..a42585e21 Binary files /dev/null and b/maxkey-protocols/maxkey-protocol-desktop/build/libs/maxkey-protocol-desktop-1.0.0.RELEASE.jar differ diff --git a/maxkey-protocols/maxkey-protocol-desktop/build/tmp/jar/MANIFEST.MF b/maxkey-protocols/maxkey-protocol-desktop/build/tmp/jar/MANIFEST.MF new file mode 100644 index 000000000..12fac2ac4 --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-desktop/build/tmp/jar/MANIFEST.MF @@ -0,0 +1,7 @@ +Manifest-Version: 1.0 +Implementation-Title: maxkey-protocol-desktop +Implementation-Version: 1.0.0.RELEASE +Implementation-Date: 2019-11-10T12:35:40.172+08:00[Asia/Shanghai] +Created-By: org.maxkey +Implementation-Vendor: https://github.com/shimingxy/MaxKey + diff --git a/maxkey-protocols/maxkey-protocol-extendapi/build/libs/maxkey-protocol-extendapi-1.0.0.RELEASE.jar b/maxkey-protocols/maxkey-protocol-extendapi/build/libs/maxkey-protocol-extendapi-1.0.0.RELEASE.jar new file mode 100644 index 000000000..908b4802f Binary files /dev/null and b/maxkey-protocols/maxkey-protocol-extendapi/build/libs/maxkey-protocol-extendapi-1.0.0.RELEASE.jar differ diff --git a/maxkey-protocols/maxkey-protocol-extendapi/build/tmp/jar/MANIFEST.MF b/maxkey-protocols/maxkey-protocol-extendapi/build/tmp/jar/MANIFEST.MF new file mode 100644 index 000000000..7bf1d73bd --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-extendapi/build/tmp/jar/MANIFEST.MF @@ -0,0 +1,7 @@ +Manifest-Version: 1.0 +Implementation-Title: maxkey-protocol-extendapi +Implementation-Version: 1.0.0.RELEASE +Implementation-Date: 2019-11-10T12:35:40.185+08:00[Asia/Shanghai] +Created-By: org.maxkey +Implementation-Vendor: https://github.com/shimingxy/MaxKey + diff --git a/maxkey-protocols/maxkey-protocol-formbased/build/libs/maxkey-protocol-formbased-1.0.0.RELEASE.jar b/maxkey-protocols/maxkey-protocol-formbased/build/libs/maxkey-protocol-formbased-1.0.0.RELEASE.jar new file mode 100644 index 000000000..692879957 Binary files /dev/null and b/maxkey-protocols/maxkey-protocol-formbased/build/libs/maxkey-protocol-formbased-1.0.0.RELEASE.jar differ diff --git a/maxkey-protocols/maxkey-protocol-formbased/build/tmp/jar/MANIFEST.MF b/maxkey-protocols/maxkey-protocol-formbased/build/tmp/jar/MANIFEST.MF new file mode 100644 index 000000000..ee8cd60e4 --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-formbased/build/tmp/jar/MANIFEST.MF @@ -0,0 +1,7 @@ +Manifest-Version: 1.0 +Implementation-Title: maxkey-protocol-formbased +Implementation-Version: 1.0.0.RELEASE +Implementation-Date: 2019-11-10T12:35:40.194+08:00[Asia/Shanghai] +Created-By: org.maxkey +Implementation-Vendor: https://github.com/shimingxy/MaxKey + diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/build.gradle b/maxkey-protocols/maxkey-protocol-oauth-2.0/build.gradle index cef067c21..7e9ae1f79 100644 --- a/maxkey-protocols/maxkey-protocol-oauth-2.0/build.gradle +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/build.gradle @@ -7,6 +7,7 @@ dependencies { compile project(":maxkey-core") compile project(":maxkey-dao") compile project(":maxkey-jose-jwt") + compile project(":maxkey-client-sdk") compile project(":maxkey-protocols:maxkey-protocol-authorize") } \ No newline at end of file diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/build/libs/maxkey-protocol-oauth-2.0-1.0.0.RELEASE.jar b/maxkey-protocols/maxkey-protocol-oauth-2.0/build/libs/maxkey-protocol-oauth-2.0-1.0.0.RELEASE.jar new file mode 100644 index 000000000..a43a8bf8a Binary files /dev/null and b/maxkey-protocols/maxkey-protocol-oauth-2.0/build/libs/maxkey-protocol-oauth-2.0-1.0.0.RELEASE.jar differ diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/build/resources/main/META-INF/MANIFEST.MF b/maxkey-protocols/maxkey-protocol-oauth-2.0/build/resources/main/META-INF/MANIFEST.MF new file mode 100644 index 000000000..254272e1c --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/build/resources/main/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/build/resources/main/META-INF/spring.handlers b/maxkey-protocols/maxkey-protocol-oauth-2.0/build/resources/main/META-INF/spring.handlers new file mode 100644 index 000000000..c9bae2aa3 --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/build/resources/main/META-INF/spring.handlers @@ -0,0 +1,2 @@ +http\://www.springframework.org/schema/security/oauth2=org.springframework.security.oauth2.config.xml.OAuth2SecurityNamespaceHandler +http\://www.springframework.org/schema/security/oauth=org.springframework.security.oauth.config.OAuthSecurityNamespaceHandler diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/build/resources/main/META-INF/spring.schemas b/maxkey-protocols/maxkey-protocol-oauth-2.0/build/resources/main/META-INF/spring.schemas new file mode 100644 index 000000000..af765299f --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/build/resources/main/META-INF/spring.schemas @@ -0,0 +1,5 @@ +http\://www.springframework.org/schema/security/spring-security-oauth2-1.0.xsd=org/springframework/security/oauth2/spring-security-oauth2-1.0.xsd +http\://www.springframework.org/schema/security/spring-security-oauth2-2.0.xsd=org/springframework/security/oauth2/spring-security-oauth2-2.0.xsd +http\://www.springframework.org/schema/security/spring-security-oauth2.xsd=org/springframework/security/oauth2/spring-security-oauth2-2.0.xsd +http\://www.springframework.org/schema/security/spring-security-oauth-1.0.xsd=org/springframework/security/oauth/spring-security-oauth-1.0.xsd +http\://www.springframework.org/schema/security/spring-security-oauth.xsd=org/springframework/security/oauth/spring-security-oauth-1.0.xsd \ No newline at end of file diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/build/resources/main/org/springframework/security/oauth2/spring-security-oauth2-1.0.xsd b/maxkey-protocols/maxkey-protocol-oauth-2.0/build/resources/main/org/springframework/security/oauth2/spring-security-oauth2-1.0.xsd new file mode 100644 index 000000000..71007dd0b --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/build/resources/main/org/springframework/security/oauth2/spring-security-oauth2-1.0.xsd @@ -0,0 +1,728 @@ + + + + + + + + + Creates an OAuth2RestTemplate with all the pieces needed to connect to a remote resource from + a web + application. Injects request and session-scoped beans into the template, so can only be + used in the context of a web + request. + + + + + + + + + + + + + + + The OAuth2ProtectedResourceDetails governing the configuration of this client. Mandatory. + + + + + + + The reference to the bean that manages access token acquisition. Optional (defaults to a chain + including common grant types from the spec). + + + + + + + + + + + + Specifies that the oauth 2 authorization and token + endpoints should be created in the application + context. These are + implemented as regular Spring @Controller beans, so as long as the + default Spring MVC set up in + present in the application + the endpoints should work (at /oauth/authorization and /oauth/token by + default). + + + + + + + + + The configuration of the authorization code + mechanism. This + mechanism enables a way for clients to + obtain an + access token by obtaining an authorization code. + + + + + + + Whether to disable the authorization code + mechanism. + + + + + + + The reference to the bean that defines the + authorization code + services. Default value is an + instance of + "org.springframework.security.oauth2.provider.authorization_code.InMemoryAuthorizationCodeServices". + + + + + + + + + The configuration of the client credentials + grant type. + + + + + + + Whether to disable the implicit grant type + + + + + + + + + The configuration of the refresh token grant + type. + + + + + + + Whether to disable the refresh token grant + type + + + + + + + + + The configuration of the client credentials + grant type. + + + + + + + Whether to disable the refresh token grant + type + + + + + + + + + The configuration of the resource owner password + grant type. + + + + + + + Whether to disable the refresh token grant + type + + + + + + + A reference to an authentication manager that + can be used to + authenticate the resource owner + + + + + + + + + The configuration of your custom grant type. + + + + + + + Whether to disable this grant + type + + + + + + + A reference to your token granter + + + + + + + + + + The reference to the bean that defines the client + details service. + + + + + + + The URL at which a request for an access token + will be serviced. + Default value: "/oauth/token" + + + + + + + The URL at which a user is redirected for + authorization. Default + value: "/oauth/authorize" + + + + + + + + + The reference to the bean that defines the + granter of different oauth + token types. + + + + + + + + The reference to the bean that defines the + implicit grant service. + + + + + + + + The reference to the bean that defines the token + services. Default + value is an instance of + "org.springframework.security.oauth2.provider.token.DefaultTokenServices". + + + + + + + + The reference to the bean that defines the manager for + authorization requests from the input + parameters (e.g. request parameters). + Default + value is an + instance of + "org.springframework.security.oauth2.provider.token.DefaultAuthorizationRequestManager". + + + + + + + + Reference to a bean that handles user approval decisions. Using this strategy servers can + selectively skip the approval process depending on decisions in the past or on the type of client. + + + + + + + + The URL of the page that handles the user + approval form (if needed, depending on the grant type). + The default is "forward:/oauth/confirm_access" which is not handled + by the authorization endpoint, so normally you + will have to supply a handler + for this path. + + + + + + + + The URL of the page that handles errors (default forward:/oauth/error). + + + + + + + + The name of the form parameter that is used to + indicate user + approval of the client + authentication + request. + Default value: "user_oauth_approval". + + + + + + + + The reference to the bean that defines the + redirect resolver, used + during the user + authorization. + Default + value is an instance of + "org.springframework.security.oauth2.provider.authorization_code.DefaultRedirectResolver". + + + + + + + + + + + Specifies that there are oauth 2 protected resources in + the application context. This element + has an + id which is the bean id of the filter created. The filter + should be added to the Spring Security filter chain at + position before="PRE_AUTH_FILTER" + + + + + + + + + + The resource id that is protected by this filter + if any. If empty or + absent then all resource ids + are allowed, + otherwise + only tokens which are granted to a client that contains + this reosurce + id will be legal. + + + + + + + + The reference to the bean that defines the token + services. Default + value is an instance of + "org.springframework.security.oauth2.provider.token.DefaultTokenServices". + + + + + + + + The reference to the bean that defines the entry point for failed authentications. Defaults to + a vanilla + org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint. + + + + + + + + The reference to the bean that defines the AuthenticationDetailsSource. + + + + + + + + + + + + Default element that contains the definition of the + OAuth clients that are + allowed to access this + service. + + + + + + + + + + + Definition of a client that can act on behalf + of a user. + + + + + + + + The client id. + + + + + + + The client secret. If the secret is + undefined or empty (the + default) the client does + not + require a + secret. + + + + + + + The re-direct URI(s) established during + registration (optional, comma separated). + + + + + + + The resource ids to which this client can be + granted access + (comma-separated). If missing or + empty all + resources are + accessible (not recommended by the spec). + + + + + + + The scopes to which the client is limited + (comma-separated). If + scope is undefined or empty + (the + default) the client + is not limited by scope, but in that case + the authorization + service must explicitly + accept unlimited + access by not + specifying any scopes itself. + + + + + + + Grant types that are authorized for the + client to use + (comma-separated). Currently defined + grant types + include + "authorization_code", "password", "assertion", and + "refresh_token". Default value is + "authorization_code,refresh_token". + + + + + + + Authorities that are granted to the client + (comma-separated). Distinct + from the authorities + granted to + the user on behalf + of whom the client is acting. + + + + + + + The access token validity period in seconds (optional). If unspecified a global default will + be applied by the token services. + + + + + + + The refresh token validity period in seconds (optional). If unspecified a global default + will + be applied by the token services. + + + + + + + + + + + + + + + Element for declaring and configuring an expression + handler for oauth + security expressions. See + http://static.springsource.org/spring-security/site/docs/3.0.x/reference/el-access.html + + + + + + + + + + + + + Element for declaring and configuring an expression + handler for oauth + security expressions in http + intercept urls. See + http://static.springsource.org/spring-security/site/docs/3.0.x/reference/el-access.html + + + + + + + + + + + + + Creates the oauth 2 client filter be be added to the + application security policy. + + + + + + + + + The reference to the bean that defines the + redirect strategy, used when redirecting the user for + access authorization. Default value is an instance of + "org.springframework.security.web.DefaultRedirectStrategy". + + + + + + + + + + + + Definition of a remote resource that is protected via + OAuth2 to which this client application wants + access. + + + + + + + + + The grant type. Currently defined grant types + include + "authorization_code", "password", and + "assertion". + Default value + is "authorization_code". + + + + + + + The client id. This is the id by which the + resource server will + identify this application. + + + + + + + The uri to where the access token may be + obtained. + + + + + + + Comma-separted list of string specifying the + scope of the access to the + resource. By default, + no + scope will be + specified. + + + + + + + The secret asssociated with the resource. By + default, no secret + will be supplied for access to + the resource. + + + + + + + The scheme that is used to pass the client + secret. Suggested + values: "header" and "form". + Default: + "header". + See section 2.1 of the OAuth 2 spec. + + + + + + + The uri to which the user will be redirected if + the user is ever + needed to grant an authorization + code. + + + + + + + The method for bearing the token when accessing + the resource. + Default value is "header". See + AuthenticationScheme enum for possible values. + + + + + + + The name of the bearer token. The default is + "access_token", which + is according to the spec, + but + some providers + (e.g. Facebook) don't conform to the spec. + + + + + + + Some resource servers may require a + pre-established URI to which + they will redirect users after + users + authorize an access token. + + + + + + + Boolean flag indicating that the current URI should be used as a redirect (if available) rather + than the + registered redirect URI. Default is true. + + + + + + + The username for authentication, required only when type is "password". + + + + + + + The password for authentication, required only when type is "password". + + + + + + + + + diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/build/tmp/jar/MANIFEST.MF b/maxkey-protocols/maxkey-protocol-oauth-2.0/build/tmp/jar/MANIFEST.MF new file mode 100644 index 000000000..090f3deda --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/build/tmp/jar/MANIFEST.MF @@ -0,0 +1,7 @@ +Manifest-Version: 1.0 +Implementation-Title: maxkey-protocol-oauth-2.0 +Implementation-Version: 1.0.0.RELEASE +Implementation-Date: 2019-11-10T12:35:40.204+08:00[Asia/Shanghai] +Created-By: org.maxkey +Implementation-Vendor: https://github.com/shimingxy/MaxKey + diff --git a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/AuthorizationEndpoint.java b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/AuthorizationEndpoint.java index b28735bdd..118adc4ac 100644 --- a/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/AuthorizationEndpoint.java +++ b/maxkey-protocols/maxkey-protocol-oauth-2.0/src/main/java/org/maxkey/authz/oauth2/provider/endpoint/AuthorizationEndpoint.java @@ -21,6 +21,10 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.maxkey.authz.endpoint.AuthorizeBaseEndpoint; import org.maxkey.authz.oauth2.common.OAuth2AccessToken; import org.maxkey.authz.oauth2.common.exceptions.InvalidClientException; import org.maxkey.authz.oauth2.common.exceptions.InvalidRequestException; @@ -41,13 +45,20 @@ import org.maxkey.authz.oauth2.provider.code.AuthorizationCodeServices; import org.maxkey.authz.oauth2.provider.code.InMemoryAuthorizationCodeServices; import org.maxkey.authz.oauth2.provider.implicit.ImplicitTokenRequest; import org.maxkey.authz.oauth2.provider.request.DefaultOAuth2RequestValidator; +import org.maxkey.client.utils.HttpEncoder; +import org.maxkey.config.ApplicationConfig; import org.maxkey.domain.apps.oauth2.provider.ClientDetails; import org.maxkey.web.WebContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.security.authentication.InsufficientAuthenticationException; import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; import org.springframework.stereotype.Controller; import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -61,6 +72,7 @@ import org.springframework.web.servlet.view.RedirectView; import org.springframework.web.util.UriComponents; import org.springframework.web.util.UriComponentsBuilder; import org.springframework.web.util.UriTemplate; +import org.maxkey.authz.oauth2.provider.ClientDetailsService; /** *

@@ -82,9 +94,18 @@ import org.springframework.web.util.UriTemplate; @Controller @SessionAttributes("authorizationRequest") public class AuthorizationEndpoint extends AbstractEndpoint { - + final static Logger _logger = LoggerFactory.getLogger(AuthorizationEndpoint.class); + + private static final String OAUTH_V20_AUTHORIZATION_URL = "%s/oauth/v20/authorize?client_id=%s&response_type=code&redirect_uri=%s&approval_prompt=auto"; + + @Autowired + @Qualifier("oauth20JdbcClientDetailsService") + private ClientDetailsService clientDetailsService; + + @Autowired + @Qualifier("applicationConfig") + protected ApplicationConfig applicationConfig; - private RedirectResolver redirectResolver = new DefaultRedirectResolver(); private UserApprovalHandler userApprovalHandler = new DefaultUserApprovalHandler(); @@ -488,5 +509,21 @@ public class AuthorizationEndpoint extends AbstractEndpoint { this.oauth2RequestValidator = oauth2RequestValidator; } - + @RequestMapping("/authz/oauthv20/{id}") + public ModelAndView authorize( + HttpServletRequest request, + HttpServletResponse response, + @PathVariable("id") String id){ + ClientDetails clientDetails =clientDetailsService.loadClientByClientId(id); + _logger.debug(""+clientDetails); + String authorizationUrl = String.format(OAUTH_V20_AUTHORIZATION_URL, + applicationConfig.getServerPrefix(), + clientDetails.getClientId(), + HttpEncoder.encode(clientDetails.getRegisteredRedirectUri().toArray()[0].toString()) + ); + + _logger.debug("authorizationUrl "+authorizationUrl); + + return WebContext.redirect(authorizationUrl); + } } diff --git a/maxkey-protocols/maxkey-protocol-saml-2.0/bin/main/.gitignore b/maxkey-protocols/maxkey-protocol-saml-2.0/bin/main/.gitignore deleted file mode 100644 index cf1db2eed..000000000 --- a/maxkey-protocols/maxkey-protocol-saml-2.0/bin/main/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/org/ diff --git a/maxkey-protocols/maxkey-protocol-saml-2.0/build/libs/maxkey-protocol-saml-2.0-1.0.0.RELEASE.jar b/maxkey-protocols/maxkey-protocol-saml-2.0/build/libs/maxkey-protocol-saml-2.0-1.0.0.RELEASE.jar new file mode 100644 index 000000000..614143efd Binary files /dev/null and b/maxkey-protocols/maxkey-protocol-saml-2.0/build/libs/maxkey-protocol-saml-2.0-1.0.0.RELEASE.jar differ diff --git a/maxkey-protocols/maxkey-protocol-saml-2.0/build/tmp/jar/MANIFEST.MF b/maxkey-protocols/maxkey-protocol-saml-2.0/build/tmp/jar/MANIFEST.MF new file mode 100644 index 000000000..ad0af86f5 --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-saml-2.0/build/tmp/jar/MANIFEST.MF @@ -0,0 +1,7 @@ +Manifest-Version: 1.0 +Implementation-Title: maxkey-protocol-saml-2.0 +Implementation-Version: 1.0.0.RELEASE +Implementation-Date: 2019-11-10T12:35:40.214+08:00[Asia/Shanghai] +Created-By: org.maxkey +Implementation-Vendor: https://github.com/shimingxy/MaxKey + diff --git a/maxkey-protocols/maxkey-protocol-tokenbased/build/libs/maxkey-protocol-tokenbased-1.0.0.RELEASE.jar b/maxkey-protocols/maxkey-protocol-tokenbased/build/libs/maxkey-protocol-tokenbased-1.0.0.RELEASE.jar new file mode 100644 index 000000000..8bb5fbb26 Binary files /dev/null and b/maxkey-protocols/maxkey-protocol-tokenbased/build/libs/maxkey-protocol-tokenbased-1.0.0.RELEASE.jar differ diff --git a/maxkey-protocols/maxkey-protocol-tokenbased/build/tmp/jar/MANIFEST.MF b/maxkey-protocols/maxkey-protocol-tokenbased/build/tmp/jar/MANIFEST.MF new file mode 100644 index 000000000..090006810 --- /dev/null +++ b/maxkey-protocols/maxkey-protocol-tokenbased/build/tmp/jar/MANIFEST.MF @@ -0,0 +1,7 @@ +Manifest-Version: 1.0 +Implementation-Title: maxkey-protocol-tokenbased +Implementation-Version: 1.0.0.RELEASE +Implementation-Date: 2019-11-10T12:35:40.220+08:00[Asia/Shanghai] +Created-By: org.maxkey +Implementation-Vendor: https://github.com/shimingxy/MaxKey + diff --git a/maxkey-protocols/maxkey-protocol-tokenbased/src/main/java/org/maxkey/authz/token/endpoint/TokenBasedAuthorizeEndpoint.java b/maxkey-protocols/maxkey-protocol-tokenbased/src/main/java/org/maxkey/authz/token/endpoint/TokenBasedAuthorizeEndpoint.java index 32b529c6f..7a4b25bed 100644 --- a/maxkey-protocols/maxkey-protocol-tokenbased/src/main/java/org/maxkey/authz/token/endpoint/TokenBasedAuthorizeEndpoint.java +++ b/maxkey-protocols/maxkey-protocol-tokenbased/src/main/java/org/maxkey/authz/token/endpoint/TokenBasedAuthorizeEndpoint.java @@ -41,7 +41,7 @@ public class TokenBasedAuthorizeEndpoint extends AuthorizeBaseEndpoint{ @Autowired ApplicationConfig applicationConfig; - @RequestMapping("/authorize/tokenbased/{id}") + @RequestMapping("/authz/tokenbased/{id}") public ModelAndView authorize( HttpServletRequest request, HttpServletResponse response, diff --git a/maxkey-web-manage/.classpath b/maxkey-web-manage/.classpath index 2a1397787..e576b4e91 100644 --- a/maxkey-web-manage/.classpath +++ b/maxkey-web-manage/.classpath @@ -13,10 +13,9 @@ - - + diff --git a/maxkey-web-manage/.settings/org.eclipse.wst.common.component b/maxkey-web-manage/.settings/org.eclipse.wst.common.component index 97c8a9e93..7d3840462 100644 --- a/maxkey-web-manage/.settings/org.eclipse.wst.common.component +++ b/maxkey-web-manage/.settings/org.eclipse.wst.common.component @@ -2,25 +2,24 @@ - - - - + + + uses - + uses - + uses - + uses - + uses - + uses diff --git a/maxkey-web-manage/.settings/org.eclipse.wst.common.project.facet.core.xml b/maxkey-web-manage/.settings/org.eclipse.wst.common.project.facet.core.xml index cea524adb..509bad92c 100644 --- a/maxkey-web-manage/.settings/org.eclipse.wst.common.project.facet.core.xml +++ b/maxkey-web-manage/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -1,7 +1,6 @@ - - + diff --git a/maxkey-web-manage/build.gradle b/maxkey-web-manage/build.gradle index 799da865d..500fc8569 100644 --- a/maxkey-web-manage/build.gradle +++ b/maxkey-web-manage/build.gradle @@ -1,6 +1,6 @@ description = "maxkey-web-manage" -apply plugin: 'war' +//apply plugin: 'war' apply plugin: 'eclipse-wtp' dependencies { diff --git a/maxkey-web-maxkey/build.gradle b/maxkey-web-maxkey/build.gradle index 57837b9e2..689f1ce03 100644 --- a/maxkey-web-maxkey/build.gradle +++ b/maxkey-web-maxkey/build.gradle @@ -3,7 +3,7 @@ description = "maxkey-web-maxkey" // Apply the java plugin to add support for Java apply plugin: 'java' -apply plugin: 'war' +//apply plugin: 'war' apply plugin: 'eclipse-wtp' apply plugin: 'com.bmuschko.tomcat-base' apply plugin: 'com.bmuschko.tomcat' diff --git a/setenv.bat b/setenv.bat index 2c908af47..e9b47d12a 100644 --- a/setenv.bat +++ b/setenv.bat @@ -1,4 +1,4 @@ echo off echo set env -set JAVA_HOME=D:\javaIDE\jdk1.8.0_31 -set GRADLE_HOME=D:\javaIDE\gradle-4.8 +set JAVA_HOME=D:\JavaIDE\jdk1.8.0_91 +set GRADLE_HOME=D:\JavaIDE\gradle-5.4.1