2010-07-26 21:16:39 -04:00
|
|
|
// CAS sample build file
|
|
|
|
|
2010-03-28 18:54:41 -04:00
|
|
|
apply plugin: 'war'
|
|
|
|
apply plugin: 'jetty'
|
2011-04-03 23:18:05 -04:00
|
|
|
apply plugin: 'groovy'
|
2010-01-10 18:31:23 -05:00
|
|
|
|
2011-04-03 23:18:05 -04:00
|
|
|
def excludeModules = ['spring-security-acl', 'jsr250-api', 'spring-jdbc', 'spring-tx']
|
2013-07-12 18:11:46 -04:00
|
|
|
def jettyVersion = '8.1.9.v20130131'
|
2011-04-03 23:18:05 -04:00
|
|
|
def keystore = "$rootDir/samples/certificates/server.jks"
|
|
|
|
def password = 'password'
|
2011-01-10 12:27:58 -05:00
|
|
|
|
2010-07-26 21:16:39 -04:00
|
|
|
configurations {
|
2015-03-23 12:14:26 -04:00
|
|
|
casServer
|
|
|
|
excludeModules.each {name ->
|
|
|
|
runtime.exclude module: name
|
|
|
|
}
|
2011-01-10 12:27:58 -05:00
|
|
|
|
2015-03-23 12:14:26 -04:00
|
|
|
runtime.exclude group: 'org.aspectj'
|
2011-04-03 23:18:05 -04:00
|
|
|
}
|
|
|
|
|
2012-08-31 16:49:28 -04:00
|
|
|
sourceSets {
|
2015-03-23 12:14:26 -04:00
|
|
|
test.resources.exclude 'GebConfig.groovy'
|
|
|
|
integrationTest.groovy.srcDir file('src/integration-test/groovy')
|
2011-04-03 23:18:05 -04:00
|
|
|
}
|
|
|
|
|
2015-01-22 13:34:52 -05:00
|
|
|
eclipse.classpath.plusConfigurations += [configurations.integrationTestRuntime]
|
2011-01-10 12:27:58 -05:00
|
|
|
|
2010-01-10 18:31:23 -05:00
|
|
|
dependencies {
|
2015-03-23 12:14:26 -04:00
|
|
|
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
|
2011-04-03 23:18:05 -04:00
|
|
|
}
|
2010-07-26 21:16:39 -04:00
|
|
|
|
2011-01-10 12:27:58 -05:00
|
|
|
[jettyRun, jettyRunWar]*.configure {
|
2015-03-23 12:14:26 -04:00
|
|
|
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)
|
|
|
|
}
|
2010-07-26 21:16:39 -04:00
|
|
|
}
|
2011-05-11 22:47:40 -04:00
|
|
|
|
2011-05-15 22:28:20 -04:00
|
|
|
task cas (dependsOn: [jettyRunWar]) {
|
2016-04-11 10:47:06 -04:00
|
|
|
jettyRunWar.dependsOn(':spring-security-samples-xml-casserver:casServer')
|
2011-05-11 22:47:40 -04:00
|
|
|
}
|
|
|
|
|
2016-04-11 10:47:06 -04:00
|
|
|
task casServer(dependsOn: ':spring-security-samples-xml-casserver:casServer') {
|
2010-12-20 17:12:35 -05:00
|
|
|
}
|
2011-05-11 22:18:56 -04:00
|
|
|
|
2011-04-03 23:18:05 -04:00
|
|
|
integrationTest.dependsOn cas
|
|
|
|
integrationTest.doFirst {
|
2015-03-23 12:14:26 -04:00
|
|
|
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
|
2011-04-03 23:18:05 -04:00
|
|
|
}
|
|
|
|
|
2010-12-20 17:12:35 -05:00
|
|
|
gradle.taskGraph.whenReady {graph ->
|
2015-03-23 12:14:26 -04:00
|
|
|
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)) {
|
2016-04-11 10:47:06 -04:00
|
|
|
tasks.getByPath(':spring-security-samples-xml-casserver:casServerOverlay').logLevel = 'ERROR'
|
2015-03-23 12:14:26 -04:00
|
|
|
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)
|
|
|
|
}
|
2011-04-03 23:18:05 -04:00
|
|
|
}
|
2011-05-12 22:46:29 -04:00
|
|
|
|
|
|
|
def casServer() {
|
2016-04-11 10:47:06 -04:00
|
|
|
tasks.getByPath(':spring-security-samples-xml-casserver:casServer')
|
2013-08-01 15:14:18 -04:00
|
|
|
}
|