| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 
							- import org.apache.tools.ant.filters.ReplaceTokens
 
- apply plugin: 'io.spring.convention.spring-sample'
 
- def keystore = "$rootDir/samples/certificates/server.jks"
 
- def password = 'password'
 
- configurations {
 
- 	casServer
 
- }
 
- dependencies {
 
- 	casServer "org.jasig.cas:cas-server-webapp:4.0.0@war"
 
- }
 
- 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"))
 
- 	from zipTree(war)
 
- 	from (overlayDir) {
 
- 		filter(ReplaceTokens,tokens: tokens)
 
- 	}
 
- 	into explodedWar
 
- 	doLast {
 
- 		if(customWar.exists()) {
 
- 			customWar.delete()
 
- 		}
 
- 		ant.zip(destfile: customWar, baseDir: explodedWar)
 
- 	}
 
- }
 
- casServerOverlay.metaClass.setLogLevel { level ->
 
- 	tokens['logLevel'] = level
 
- }
 
- 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')
 
- 	}
 
- }
 
 
  |