6 changed files with 95 additions and 132 deletions
Binary file not shown.
@ -1,6 +1,6 @@
@@ -1,6 +1,6 @@
|
||||
#Tue Apr 11 20:42:24 CDT 2017 |
||||
#Fri Sep 15 11:04:40 CDT 2017 |
||||
distributionBase=GRADLE_USER_HOME |
||||
distributionPath=wrapper/dists |
||||
zipStoreBase=GRADLE_USER_HOME |
||||
zipStorePath=wrapper/dists |
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-bin.zip |
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-bin.zip |
||||
|
||||
@ -1,63 +1,55 @@
@@ -1,63 +1,55 @@
|
||||
import org.apache.tools.ant.filters.ReplaceTokens |
||||
|
||||
apply plugin: 'io.spring.convention.spring-sample' |
||||
apply plugin: 'io.spring.convention.spring-sample-war' |
||||
|
||||
def keystore = "$rootDir/samples/certificates/server.jks" |
||||
def password = 'password' |
||||
|
||||
configurations { |
||||
casServer |
||||
} |
||||
dependencies { |
||||
casServer "org.jasig.cas:cas-server-webapp:4.0.0@war" |
||||
compile "org.jasig.cas:cas-server-webapp:4.0.0@war" |
||||
compile slf4jDependencies |
||||
} |
||||
|
||||
task casServerOverlay(type: Sync) { |
||||
def war = configurations.casServer.resolve().toArray()[0] |
||||
def warName = war.name.replace('.war','-custom') |
||||
def overlayDir = file('src/main/webapp') |
||||
def explodedWar = file("$buildDir/tmp/${warName}") |
||||
ext.customWar = file("$buildDir/tmp/${warName}.war") |
||||
ext.tokens = [logLevel: 'INFO'] |
||||
|
||||
inputs.files(war, overlayDir) |
||||
inputs.property('tokens',{tokens}) |
||||
outputs.files (customWar,explodedWar,file("$buildDir/tmp/expandedArchives")) |
||||
project.tasks.withType(org.gradle.api.tasks.bundling.War) { war -> |
||||
war.duplicatesStrategy = DuplicatesStrategy.EXCLUDE |
||||
project.tasks.war.doFirst { |
||||
war.classpath = war.classpath.filter { !it.name.endsWith(".war") } |
||||
|
||||
from zipTree(war) |
||||
from (overlayDir) { |
||||
filter(ReplaceTokens,tokens: tokens) |
||||
} |
||||
into explodedWar |
||||
|
||||
doLast { |
||||
if(customWar.exists()) { |
||||
customWar.delete() |
||||
war.project.configurations.runtime.each { |
||||
if (it.name.endsWith(".war")) { |
||||
def fileList = war.project.zipTree(it) |
||||
war.from fileList |
||||
} |
||||
} |
||||
ant.zip(destfile: customWar, baseDir: explodedWar) |
||||
} |
||||
} |
||||
|
||||
casServerOverlay.metaClass.setLogLevel { level -> |
||||
tokens['logLevel'] = level |
||||
project.tasks.withType(org.akhikhl.gretty.StartBaseTask).all { task -> |
||||
task.doFirst { |
||||
def destinationDir = project.file("$buildDir/inplaceWebapp") |
||||
project.configurations.runtime.each { dependency -> |
||||
if (dependency.name.endsWith(".war")) { |
||||
def warTree = project.zipTree(dependency) |
||||
project.copy { |
||||
from warTree |
||||
into destinationDir |
||||
eachFile { |
||||
if (it.relativePath.getFile(destinationDir).exists()) { |
||||
it.exclude() |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
task casServer (type: org.gradle.api.plugins.jetty.JettyRunWar, dependsOn: 'casServerOverlay') { |
||||
contextPath = "/cas" |
||||
connectors = [casServer.class.classLoader.loadClass('org.mortbay.jetty.security.SslSocketConnector').newInstance()] |
||||
connectors[0].port = 9443 |
||||
connectors[0].keystore = connectors[0].truststore = keystore |
||||
connectors[0].keyPassword = connectors[0].trustPassword = password |
||||
connectors[0].wantClientAuth = true |
||||
connectors[0].needClientAuth = false |
||||
webApp = casServerOverlay.customWar |
||||
|
||||
inputs.file casServerOverlay.customWar |
||||
|
||||
doFirst() { |
||||
System.setProperty('javax.net.ssl.trustStore', keystore) |
||||
System.setProperty('javax.net.ssl.trustStorePassword', password) |
||||
System.setProperty('java.naming.factory.url.pkgs','org.mortbay.naming') |
||||
System.setProperty('java.naming.factory.initial','org.mortbay.naming.InitialContextFactory') |
||||
} |
||||
gretty { |
||||
contextPath = '/cas' |
||||
httpsEnabled = true |
||||
httpPort = 9090 |
||||
httpsPort = 9443 |
||||
sslKeyStorePath = keystore |
||||
sslKeyStorePassword = password |
||||
jvmArgs = ["-Djavax.net.ssl.trustStore=${keystore}", "-Djavax.net.ssl.trustStorePassword=${password}"] |
||||
} |
||||
|
||||
@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
|
||||
apply plugin: 'io.spring.convention.spring-sample-war' |
||||
|
||||
def keystore = "$rootDir/samples/certificates/server.jks" |
||||
def password = 'password' |
||||
|
||||
gretty { |
||||
httpsEnabled = true |
||||
httpsPort = 8443 |
||||
sslKeyStorePath = keystore |
||||
sslKeyStorePassword = password |
||||
jvmArgs = ["-Djavax.net.ssl.trustStore=${keystore}", |
||||
"-Djavax.net.ssl.trustStorePassword=${password}", |
||||
"-Dcas.server.host=localhost:$httpsPort", |
||||
"-Dcas.service.host=localhost:$httpsPort"] |
||||
} |
||||
|
||||
farm { |
||||
webapp ':spring-security-samples-xml-casserver' |
||||
webapp ':spring-security-samples-xml-cassample' |
||||
} |
||||
|
||||
task cas(dependsOn: 'farmRunWar') { |
||||
group 'Gretty tasks' |
||||
description 'Run CAS Server and Sample' |
||||
} |
||||
Loading…
Reference in new issue