| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 | 
							- // CAS sample build file
 
- apply plugin: 'war'
 
- apply plugin: 'jetty'
 
- apply plugin: 'groovy'
 
- def excludeModules = ['spring-security-acl', 'jsr250-api', 'spring-jdbc', 'spring-tx']
 
- def jettyVersion = '8.1.22.v20160922'
 
- def keystore = "$rootDir/samples/certificates/server.jks"
 
- def password = 'password'
 
- configurations {
 
- 	casServer
 
- 	excludeModules.each {name ->
 
- 		runtime.exclude module: name
 
- 	}
 
- 	runtime.exclude group: 'org.aspectj'
 
- }
 
- sourceSets {
 
- 	test.resources.exclude 'GebConfig.groovy'
 
- 	integrationTest.groovy.srcDir file('src/integration-test/groovy')
 
- }
 
- eclipse.classpath.plusConfigurations += [configurations.integrationTestRuntime]
 
- dependencies {
 
- 	providedCompile "javax.servlet:javax.servlet-api:$servletApiVersion"
 
- 	compile project(':spring-security-core'),
 
- 			project(':spring-security-cas'),
 
- 			"org.jasig.cas.client:cas-client-core:$casClientVersion"
 
- 	runtime project(':spring-security-web'),
 
- 			project(':spring-security-config'),
 
- 			"org.springframework:spring-context-support:$springVersion",
 
- 			"org.slf4j:jcl-over-slf4j:$slf4jVersion",
 
- 			"ch.qos.logback:logback-classic:$logbackVersion",
 
- 			"net.sf.ehcache:ehcache:$ehcacheVersion"
 
- 	integrationTestCompile project(':spring-security-cas'),
 
- 				   "org.seleniumhq.selenium:selenium-htmlunit-driver:$seleniumVersion",
 
- 				   "org.gebish:geb-spock:$gebVersion",
 
- 				   'commons-httpclient:commons-httpclient:3.1',
 
- 				   "org.eclipse.jetty:jetty-server:$jettyVersion",
 
- 				   "org.eclipse.jetty:jetty-servlet:$jettyVersion",
 
- 				   "org.codehaus.groovy:groovy:$groovyVersion",
 
- 				   "org.slf4j:jcl-over-slf4j:$slf4jVersion",
 
- 				   spockDependencies
 
- }
 
- [jettyRun, jettyRunWar]*.configure {
 
- 	contextPath = "/cas-sample"
 
- 	def httpConnector = jettyRunWar.class.classLoader.loadClass('org.mortbay.jetty.nio.SelectChannelConnector').newInstance()
 
- 	httpConnector.port = 8080
 
- 	httpConnector.confidentialPort = 8443
 
- 	def httpsConnector = jettyRunWar.class.classLoader.loadClass('org.mortbay.jetty.security.SslSocketConnector').newInstance()
 
- 	httpsConnector.port = 8443
 
- 	httpsConnector.keystore = httpsConnector.truststore = keystore
 
- 	httpsConnector.keyPassword = httpsConnector.trustPassword = password
 
- 	connectors = [httpConnector, httpsConnector]
 
- 	doFirst() {
 
- 		System.setProperty('cas.server.host', casServer().httpsHost)
 
- 		System.setProperty('cas.service.host', jettyRunWar.httpsHost)
 
- 	}
 
- }
 
- task cas (dependsOn: [jettyRunWar]) {
 
- 	jettyRunWar.dependsOn(':spring-security-samples-xml-casserver:casServer')
 
- }
 
- task casServer(dependsOn: ':spring-security-samples-xml-casserver:casServer') {
 
- }
 
- integrationTest.dependsOn cas
 
- integrationTest.doFirst {
 
- 	def casServiceHost = jettyRunWar.httpsHost
 
- 	systemProperties['cas.server.host'] = casServer().httpsHost
 
- 	systemProperties['cas.service.host'] = casServiceHost
 
- 	systemProperties['geb.build.baseUrl'] = 'https://'+casServiceHost+'/cas-sample/'
 
- 	systemProperties['geb.build.reportsDir'] = 'build/geb-reports'
 
- 	systemProperties['jar.path'] = jar.archivePath
 
- 	systemProperties['javax.net.ssl.trustStore'] = keystore
 
- 	systemProperties['javax.net.ssl.trustStorePassword'] = password
 
- }
 
- gradle.taskGraph.whenReady {graph ->
 
- 	def casServer = casServer()
 
- 	[casServer,jettyRunWar]*.metaClass*.getHttpsConnector {->
 
- 		def sslSocketConnClass = jettyRunWar.class.classLoader.loadClass('org.mortbay.jetty.security.SslSocketConnector')
 
- 		delegate.connectors.find { it in sslSocketConnClass }
 
- 	}
 
- 	[casServer,jettyRunWar]*.metaClass*.getHttpsHost {->
 
- 		"localhost:"+delegate.httpsConnector.port
 
- 	}
 
- 	jettyRunWar.metaClass.getHttpConnector {->
 
- 		def channelConnClass = jettyRunWar.class.classLoader.loadClass('org.mortbay.jetty.nio.SelectChannelConnector')
 
- 		delegate.connectors.find { it in channelConnClass }
 
- 	}
 
- 	if (graph.hasTask(cas)) {
 
- 		casServer.daemon = true
 
- 	}
 
- 	if(graph.hasTask(integrationTest)) {
 
- 		tasks.getByPath(':spring-security-samples-xml-casserver:casServerOverlay').logLevel = 'ERROR'
 
- 		jettyRunWar {
 
- 			additionalRuntimeJars += file("src/integration-test/resources")
 
- 			daemon = true
 
- 		}
 
- 		[jettyRunWar.httpConnector,jettyRunWar.httpsConnector,casServer.httpsConnector]*.metaClass*.reservePort { taskToCloseSocket ->
 
- 			def serverSocket = new ServerSocket(0)
 
- 			delegate.metaClass.serverSocket = serverSocket
 
- 			delegate.port = serverSocket.localPort
 
- 			taskToCloseSocket.doFirst {
 
- 				serverSocket.close()
 
- 			}
 
- 		}
 
- 		[jettyRunWar.httpConnector,jettyRunWar.httpsConnector]*.reservePort(jettyRunWar)
 
- 		jettyRunWar.httpConnector.confidentialPort = jettyRunWar.httpsConnector.port
 
- 		casServer.httpsConnector.reservePort(casServer)
 
- 	}
 
- }
 
- def casServer() {
 
- 	tasks.getByPath(':spring-security-samples-xml-casserver:casServer')
 
- }
 
 
  |