database
This commit is contained in:
parent
d8bd45ede8
commit
6bc6f8ea5f
715
cas.properties
Normal file
715
cas.properties
Normal file
@ -0,0 +1,715 @@
|
|||||||
|
server.port=8081
|
||||||
|
server.name=http://localhost:8080
|
||||||
|
server.prefix=${server.name}/cas
|
||||||
|
|
||||||
|
# security configuration based on IP address to access the /status and /statistics pages
|
||||||
|
# cas.securityContext.adminpages.ip=127\.0\.0\.1
|
||||||
|
|
||||||
|
##
|
||||||
|
# Unique CAS node name
|
||||||
|
# host.name is used to generate unique Service Ticket IDs and SAMLArtifacts. This is usually set to the specific
|
||||||
|
# hostname of the machine running the CAS node, but it could be any label so long as it is unique in the cluster.
|
||||||
|
# host.name=
|
||||||
|
|
||||||
|
##
|
||||||
|
# JPA Ticket Registry Database Configuration
|
||||||
|
#
|
||||||
|
# ticketreg.database.ddl.auto=create-drop
|
||||||
|
# ticketreg.database.dialect=org.hibernate.dialect.OracleDialect|MySQLInnoDBDialect|HSQLDialect
|
||||||
|
# ticketreg.database.batchSize=10
|
||||||
|
# ticketreg.database.driverClass=org.hsqldb.jdbcDriver
|
||||||
|
# ticketreg.database.url=jdbc:hsqldb:mem:cas-ticket-registry
|
||||||
|
# ticketreg.database.user=sa
|
||||||
|
# ticketreg.database.password=
|
||||||
|
# ticketreg.database.pool.minSize=6
|
||||||
|
# ticketreg.database.pool.maxSize=18
|
||||||
|
# ticketreg.database.pool.maxWait=10000
|
||||||
|
# ticketreg.database.pool.maxIdleTime=120
|
||||||
|
# ticketreg.database.pool.acquireIncrement=6
|
||||||
|
# ticketreg.database.pool.idleConnectionTestPeriod=30
|
||||||
|
# ticketreg.database.pool.connectionHealthQuery=select 1
|
||||||
|
# ticketreg.database.pool.acquireRetryAttempts=5
|
||||||
|
# ticketreg.database.pool.acquireRetryDelay=2000
|
||||||
|
# ticketreg.database.pool.connectionHealthQuery=select 1
|
||||||
|
|
||||||
|
##
|
||||||
|
# JPA Service Registry Database Configuration
|
||||||
|
#
|
||||||
|
# svcreg.database.ddl.auto=create-drop
|
||||||
|
# svcreg.database.hibernate.dialect=org.hibernate.dialect.OracleDialect|MySQLInnoDBDialect|HSQLDialect
|
||||||
|
# svcreg.database.hibernate.batchSize=10
|
||||||
|
# svcreg.database.driverClass=org.hsqldb.jdbcDriver
|
||||||
|
# svcreg.database.url=jdbc:hsqldb:mem:cas-ticket-registry
|
||||||
|
# svcreg.database.user=sa
|
||||||
|
# svcreg.database.password=
|
||||||
|
# svcreg.database.pool.minSize=6
|
||||||
|
# svcreg.database.pool.maxSize=18
|
||||||
|
# svcreg.database.pool.maxWait=10000
|
||||||
|
# svcreg.database.pool.maxIdleTime=120
|
||||||
|
# svcreg.database.pool.acquireIncrement=6
|
||||||
|
# svcreg.database.pool.idleConnectionTestPeriod=30
|
||||||
|
# svcreg.database.pool.connectionHealthQuery=select 1
|
||||||
|
# svcreg.database.pool.acquireRetryAttempts=5
|
||||||
|
# svcreg.database.pool.acquireRetryDelay=2000
|
||||||
|
# svcreg.database.pool.connectionHealthQuery=select 1
|
||||||
|
|
||||||
|
##
|
||||||
|
# CAS SSO Cookie Generation & Security
|
||||||
|
# See https://github.com/mitreid-connect/json-web-key-generator
|
||||||
|
#
|
||||||
|
# Do note that the following settings MUST be generated per deployment.
|
||||||
|
#
|
||||||
|
# The encryption secret key. By default, must be a octet string of size 256.
|
||||||
|
# tgc.encryption.key=
|
||||||
|
|
||||||
|
# The signing secret key. By default, must be a octet string of size 512.
|
||||||
|
# tgc.signing.key=
|
||||||
|
|
||||||
|
# Decides whether SSO cookie should be created only under secure connections.
|
||||||
|
# tgc.secure=true
|
||||||
|
|
||||||
|
# The expiration value of the SSO cookie
|
||||||
|
# tgc.maxAge=-1
|
||||||
|
|
||||||
|
# The name of the SSO cookie
|
||||||
|
# tgc.name=TGC
|
||||||
|
|
||||||
|
# The path to which the SSO cookie will be scoped
|
||||||
|
# tgc.path=/cas
|
||||||
|
|
||||||
|
# The expiration value of the SSO cookie for long-term authentications
|
||||||
|
# tgc.remember.me.maxAge=1209600
|
||||||
|
|
||||||
|
# Decides whether SSO Warning cookie should be created only under secure connections.
|
||||||
|
# warn.cookie.secure=true
|
||||||
|
|
||||||
|
# The expiration value of the SSO Warning cookie
|
||||||
|
# warn.cookie.maxAge=-1
|
||||||
|
|
||||||
|
# The name of the SSO Warning cookie
|
||||||
|
# warn.cookie.name=CASPRIVACY
|
||||||
|
|
||||||
|
# The path to which the SSO Warning cookie will be scoped
|
||||||
|
# warn.cookie.path=/cas
|
||||||
|
|
||||||
|
# Whether we should track the most recent session by keeping the latest service ticket
|
||||||
|
# tgt.onlyTrackMostRecentSession = true
|
||||||
|
|
||||||
|
##
|
||||||
|
# CAS UI Theme Resolution
|
||||||
|
#
|
||||||
|
# cas.themeResolver.defaultThemeName=cas-theme-default
|
||||||
|
# cas.themeResolver.pathprefix=/WEB-INF/view/jsp/
|
||||||
|
# cas.themeResolver.param.name=theme
|
||||||
|
# Location of the Spring xml config file where views may be collected
|
||||||
|
# cas.viewResolver.xmlFile=/META-INF/spring/views.xml
|
||||||
|
|
||||||
|
##
|
||||||
|
# CAS Logout Behavior
|
||||||
|
# WEB-INF/cas-servlet.xml
|
||||||
|
#
|
||||||
|
# Specify whether CAS should redirect to the specified service parameter on /logout requests
|
||||||
|
# cas.logout.followServiceRedirects=false
|
||||||
|
|
||||||
|
##
|
||||||
|
# CAS Cached Attributes Timeouts
|
||||||
|
# Controls the cached attribute expiration policy
|
||||||
|
#
|
||||||
|
# Notes the duration in which attributes will be kept alive
|
||||||
|
# cas.attrs.timeToExpireInHours=2
|
||||||
|
|
||||||
|
##
|
||||||
|
# Single Sign-On Session
|
||||||
|
#
|
||||||
|
# Indicates whether an SSO session should be created for renewed authentication requests.
|
||||||
|
# create.sso.renewed.authn=true
|
||||||
|
#
|
||||||
|
# Indicates whether an SSO session can be created if no service is present.
|
||||||
|
# create.sso.missing.service=true
|
||||||
|
|
||||||
|
##
|
||||||
|
# CAS Authentication Policy
|
||||||
|
#
|
||||||
|
# cas.authn.policy.any.tryall=false
|
||||||
|
# cas.authn.policy.req.tryall=false
|
||||||
|
# cas.authn.policy.req.handlername=handlerName
|
||||||
|
|
||||||
|
##
|
||||||
|
# CAS PersonDirectory Principal Resolution
|
||||||
|
#
|
||||||
|
# cas.principal.resolver.persondir.principal.attribute=cn
|
||||||
|
# cas.principal.resolver.persondir.return.null=false
|
||||||
|
|
||||||
|
##
|
||||||
|
# CAS Internationalization
|
||||||
|
#
|
||||||
|
# locale.default=en
|
||||||
|
# locale.param.name=locale
|
||||||
|
# message.bundle.encoding=UTF-8
|
||||||
|
# message.bundle.cacheseconds=180
|
||||||
|
# message.bundle.fallback.systemlocale=false
|
||||||
|
# message.bundle.usecode.message=true
|
||||||
|
# message.bundle.basenames=classpath:custom_messages,classpath:messages
|
||||||
|
|
||||||
|
##
|
||||||
|
# CAS Authentication Throttling
|
||||||
|
#
|
||||||
|
#cas.throttle.failure.threshold=
|
||||||
|
#cas.throttle.failure.range.seconds=
|
||||||
|
#cas.throttle.username.parameter=
|
||||||
|
#cas.throttle.appcode=
|
||||||
|
#cas.throttle.authn.failurecode=
|
||||||
|
#cas.throttle.audit.query=
|
||||||
|
|
||||||
|
##
|
||||||
|
# CAS Health Monitoring
|
||||||
|
#
|
||||||
|
# cas.monitor.st.warn.threshold=5000
|
||||||
|
# cas.monitor.tgt.warn.threshold=10000
|
||||||
|
# cas.monitor.free.mem.threshold=10
|
||||||
|
|
||||||
|
##
|
||||||
|
# CAS MongoDB Service Registry
|
||||||
|
#
|
||||||
|
# mongodb.host=mongodb database url
|
||||||
|
# mongodb.port=mongodb database port
|
||||||
|
# mongodb.userId=mongodb userid to bind
|
||||||
|
# mongodb.userPassword=mongodb password to bind
|
||||||
|
# cas.service.registry.mongo.db=Collection name to store service definitions
|
||||||
|
# mongodb.timeout=5000
|
||||||
|
|
||||||
|
##
|
||||||
|
# Spring Webflow Web Application Session
|
||||||
|
# Define the settings that are required to encrypt and persist the CAS web application session.
|
||||||
|
# See the cas-servlet.xml file to understand how these properties are used.
|
||||||
|
#
|
||||||
|
# The encryption secret key. By default, must be a octet string of size 256.
|
||||||
|
# webflow.encryption.key=
|
||||||
|
|
||||||
|
# The signing secret key. By default, must be a octet string of size 512.
|
||||||
|
# webflow.signing.key=
|
||||||
|
|
||||||
|
##
|
||||||
|
# Remote User Authentication
|
||||||
|
#
|
||||||
|
# ip.address.range=
|
||||||
|
|
||||||
|
##
|
||||||
|
# Apache Shiro Authentication
|
||||||
|
#
|
||||||
|
# shiro.authn.requiredRoles=
|
||||||
|
# shiro.authn.requiredPermissions=
|
||||||
|
# shiro.authn.config.file=classpath:shiro.ini
|
||||||
|
|
||||||
|
##
|
||||||
|
# YubiKey Authentication
|
||||||
|
#
|
||||||
|
# yubikey.client.id=
|
||||||
|
# yubikey.secret.key=
|
||||||
|
|
||||||
|
datasource.url=jdbc:mysql://172.16.4.6/yobr-daily?useUnicode=true&characterEncoding=utf8
|
||||||
|
datasource.username=yobr_query
|
||||||
|
datasource.password=yobr_query!
|
||||||
|
|
||||||
|
##
|
||||||
|
# JDBC Authentication
|
||||||
|
#
|
||||||
|
# cas.jdbc.authn.query.encode.sql=
|
||||||
|
# cas.jdbc.authn.query.encode.alg=
|
||||||
|
# cas.jdbc.authn.query.encode.salt.static=
|
||||||
|
# cas.jdbc.authn.query.encode.password=
|
||||||
|
# cas.jdbc.authn.query.encode.salt=
|
||||||
|
# cas.jdbc.authn.query.encode.iterations.field=
|
||||||
|
# cas.jdbc.authn.query.encode.iterations=
|
||||||
|
|
||||||
|
cas.jdbc.authn.query.sql=select password from br_auth_user where account = ?
|
||||||
|
|
||||||
|
# cas.jdbc.authn.search.password=
|
||||||
|
# cas.jdbc.authn.search.user=
|
||||||
|
# cas.jdbc.authn.search.table=
|
||||||
|
|
||||||
|
##
|
||||||
|
# Duo security 2fa authentication provider
|
||||||
|
# https://www.duosecurity.com/docs/duoweb#1.-generate-an-akey
|
||||||
|
#
|
||||||
|
# cas.duo.api.host=
|
||||||
|
# cas.duo.integration.key=
|
||||||
|
# cas.duo.secret.key=
|
||||||
|
# cas.duo.application.key=
|
||||||
|
|
||||||
|
##
|
||||||
|
# File Authentication
|
||||||
|
#
|
||||||
|
# file.authn.filename=classpath:people.txt
|
||||||
|
# file.authn.separator=::
|
||||||
|
|
||||||
|
##
|
||||||
|
# General Authentication
|
||||||
|
#
|
||||||
|
# cas.principal.transform.upperCase=false
|
||||||
|
# cas.authn.password.encoding.char=UTF-8
|
||||||
|
# cas.authn.password.encoding.alg=SHA-256
|
||||||
|
cas.authn.password.encoding.alg=MD5
|
||||||
|
# cas.principal.transform.prefix=
|
||||||
|
# cas.principal.transform.suffix=
|
||||||
|
|
||||||
|
##
|
||||||
|
# X509 Authentication
|
||||||
|
#
|
||||||
|
# cas.x509.authn.crl.checkAll=false
|
||||||
|
# cas.x509.authn.crl.throw.failure=true
|
||||||
|
# cas.x509.authn.crl.refresh.interval=
|
||||||
|
# cas.x509.authn.revocation.policy.threshold=
|
||||||
|
# cas.x509.authn.trusted.issuer.dnpattern=
|
||||||
|
# cas.x509.authn.max.path.length=
|
||||||
|
# cas.x509.authn.max.path.length.unspecified=
|
||||||
|
# cas.x509.authn.check.key.usage=
|
||||||
|
# cas.x509.authn.require.key.usage=
|
||||||
|
# cas.x509.authn.subject.dnpattern=
|
||||||
|
# cas.x509.authn.principal.descriptor=
|
||||||
|
# cas.x509.authn.principal.serial.no.prefix=
|
||||||
|
# cas.x509.authn.principal.value.delim=
|
||||||
|
|
||||||
|
##
|
||||||
|
# Accepted Users Authentication
|
||||||
|
#
|
||||||
|
accept.authn.users=casuser::Mellon
|
||||||
|
|
||||||
|
##
|
||||||
|
# Rejected Users Authentication
|
||||||
|
#
|
||||||
|
# reject.authn.users=
|
||||||
|
|
||||||
|
##
|
||||||
|
# JAAS Authentication
|
||||||
|
#
|
||||||
|
# cas.authn.jaas.realm=CAS
|
||||||
|
# cas.authn.jaas.kerb.realm=
|
||||||
|
# cas.authn.jaas.kerb.kdc=
|
||||||
|
|
||||||
|
##
|
||||||
|
# Single Sign-On Session TGT Timeouts
|
||||||
|
#
|
||||||
|
# Inactivity Timeout Policy
|
||||||
|
# tgt.timeout.maxTimeToLiveInSeconds=28800
|
||||||
|
|
||||||
|
# Hard Timeout Policy
|
||||||
|
# tgt.timeout.hard.maxTimeToLiveInSeconds
|
||||||
|
#
|
||||||
|
# Throttled Timeout Policy
|
||||||
|
# tgt.throttled.maxTimeToLiveInSeconds=28800
|
||||||
|
# tgt.throttled.timeInBetweenUsesInSeconds=5
|
||||||
|
|
||||||
|
# Default Expiration Policy
|
||||||
|
# tgt.maxTimeToLiveInSeconds=28800
|
||||||
|
# tgt.timeToKillInSeconds=7200
|
||||||
|
|
||||||
|
##
|
||||||
|
# Service Ticket Timeout
|
||||||
|
#
|
||||||
|
# st.timeToKillInSeconds=10
|
||||||
|
# st.numberOfUses=1
|
||||||
|
|
||||||
|
##
|
||||||
|
# Http Client Settings
|
||||||
|
#
|
||||||
|
# The http client read timeout in milliseconds
|
||||||
|
# http.client.read.timeout=5000
|
||||||
|
|
||||||
|
# The http client connection timeout in milliseconds
|
||||||
|
# http.client.connection.timeout=5000
|
||||||
|
#
|
||||||
|
# The http client truststore file, in addition to the default's
|
||||||
|
# http.client.truststore.file=classpath:truststore.jks
|
||||||
|
#
|
||||||
|
# The http client truststore's password
|
||||||
|
# http.client.truststore.psw=changeit
|
||||||
|
|
||||||
|
##
|
||||||
|
# Single Logout Out Callbacks
|
||||||
|
#
|
||||||
|
# To turn off all back channel SLO requests set this to true
|
||||||
|
# slo.callbacks.disabled=false
|
||||||
|
#
|
||||||
|
# To send callbacks to endpoints synchronously, set this to false
|
||||||
|
# slo.callbacks.asynchronous=true
|
||||||
|
|
||||||
|
##
|
||||||
|
# CAS Protocol Security Filter
|
||||||
|
#
|
||||||
|
# Are multi-valued parameters accepted?
|
||||||
|
# cas.http.allow.multivalue.params=false
|
||||||
|
|
||||||
|
# Define the list of request parameters to examine for sanity
|
||||||
|
# cas.http.check.params=ticket,service,renew,gateway,warn,target,SAMLart,pgtUrl,pgt,pgtId,pgtIou,targetService
|
||||||
|
|
||||||
|
# Define the list of request parameters only allowed via POST
|
||||||
|
# cas.http.allow.post.params=username,password
|
||||||
|
|
||||||
|
##
|
||||||
|
# JSON Service Registry
|
||||||
|
#
|
||||||
|
# Directory location where JSON service files may be found.
|
||||||
|
# service.registry.config.location=classpath:services
|
||||||
|
|
||||||
|
##
|
||||||
|
# Service Registry Periodic Reloading Scheduler
|
||||||
|
# Default sourced from WEB-INF/spring-configuration/applicationContext.xml
|
||||||
|
#
|
||||||
|
# Force a startup delay of 2 minutes.
|
||||||
|
# service.registry.quartz.reloader.startDelay=120000
|
||||||
|
#
|
||||||
|
# Reload services every 2 minutes
|
||||||
|
# service.registry.quartz.reloader.repeatInterval=120000
|
||||||
|
|
||||||
|
##
|
||||||
|
# Background Scheduler
|
||||||
|
#
|
||||||
|
# Wait for scheduler to finish running before shutting down CAS.
|
||||||
|
# scheduler.shutdown.wait=true
|
||||||
|
#
|
||||||
|
# Attempt to interrupt background jobs when shutting down CAS
|
||||||
|
# scheduler.shutdown.interruptJobs=true
|
||||||
|
|
||||||
|
##
|
||||||
|
# Audits
|
||||||
|
#
|
||||||
|
# Use single line format for audit blocks
|
||||||
|
# cas.audit.singleline=true
|
||||||
|
# Separator to use between each fields in a single audit event
|
||||||
|
# cas.audit.singleline.separator=|
|
||||||
|
# Application code for audits
|
||||||
|
# cas.audit.appcode=CAS
|
||||||
|
#
|
||||||
|
## JDBC Audits
|
||||||
|
#
|
||||||
|
#cas.audit.max.agedays=
|
||||||
|
#cas.audit.database.dialect=
|
||||||
|
#cas.audit.database.batchSize=
|
||||||
|
#cas.audit.database.ddl.auto=
|
||||||
|
#cas.audit.database.gen.ddl=
|
||||||
|
#cas.audit.database.show.sql=
|
||||||
|
#cas.audit.database.driverClass=
|
||||||
|
#cas.audit.database.url=
|
||||||
|
#cas.audit.database.user=
|
||||||
|
#cas.audit.database.password=
|
||||||
|
#cas.audit.database.pool.minSize=
|
||||||
|
#cas.audit.database.pool.minSize=
|
||||||
|
#cas.audit.database.pool.maxSize=
|
||||||
|
#cas.audit.database.pool.maxIdleTime=
|
||||||
|
#cas.audit.database.pool.maxWait=
|
||||||
|
#cas.audit.database.pool.acquireIncrement=
|
||||||
|
#cas.audit.database.pool.acquireRetryAttempts=
|
||||||
|
#cas.audit.database.pool.acquireRetryDelay=
|
||||||
|
#cas.audit.database.pool.idleConnectionTestPeriod=
|
||||||
|
#cas.audit.database.pool.connectionHealthQuery=
|
||||||
|
|
||||||
|
##
|
||||||
|
# Metrics
|
||||||
|
# Default sourced from WEB-INF/spring-configuration/metricsConfiguration.xml:
|
||||||
|
#
|
||||||
|
# Define how often should metric data be reported. Default is 30 seconds.
|
||||||
|
# metrics.refresh.interval=30s
|
||||||
|
|
||||||
|
##
|
||||||
|
# Encoding
|
||||||
|
#
|
||||||
|
# Set the encoding to use for requests. Default is UTF-8
|
||||||
|
# httprequest.web.encoding=UTF-8
|
||||||
|
|
||||||
|
# Default is true. Switch this to "false" to not enforce the specified encoding in any case,
|
||||||
|
# applying it as default response encoding as well.
|
||||||
|
# httprequest.web.encoding.force=true
|
||||||
|
|
||||||
|
##
|
||||||
|
# Response Headers
|
||||||
|
#
|
||||||
|
# httpresponse.header.cache=false
|
||||||
|
# httpresponse.header.hsts=false
|
||||||
|
# httpresponse.header.xframe=false
|
||||||
|
# httpresponse.header.xcontent=false
|
||||||
|
# httpresponse.header.xss=false
|
||||||
|
|
||||||
|
##
|
||||||
|
# SAML
|
||||||
|
#
|
||||||
|
# Indicates the SAML response issuer
|
||||||
|
# cas.saml.response.issuer=localhost
|
||||||
|
#
|
||||||
|
# Indicates the skew allowance which controls the issue instant of the SAML response
|
||||||
|
# cas.saml.response.skewAllowance=0
|
||||||
|
#
|
||||||
|
# Indicates whether SAML ticket id generation should be saml2-compliant.
|
||||||
|
# cas.saml.ticketid.saml2=false
|
||||||
|
|
||||||
|
##
|
||||||
|
# Default Ticket Registry
|
||||||
|
#
|
||||||
|
# default.ticket.registry.initialcapacity=1000
|
||||||
|
# default.ticket.registry.loadfactor=1
|
||||||
|
# default.ticket.registry.concurrency=20
|
||||||
|
|
||||||
|
##
|
||||||
|
# Ticket Registry Cleaner
|
||||||
|
#
|
||||||
|
# Indicates how frequently the Ticket Registry cleaner should run. Configured in seconds.
|
||||||
|
# ticket.registry.cleaner.startdelay=20
|
||||||
|
# ticket.registry.cleaner.repeatinterval=5000
|
||||||
|
|
||||||
|
##
|
||||||
|
# Ticket ID Generation
|
||||||
|
#
|
||||||
|
# lt.ticket.maxlength=20
|
||||||
|
# st.ticket.maxlength=20
|
||||||
|
# tgt.ticket.maxlength=50
|
||||||
|
# pgt.ticket.maxlength=50
|
||||||
|
|
||||||
|
##
|
||||||
|
# Google Apps public/private key
|
||||||
|
#
|
||||||
|
# cas.saml.googleapps.publickey.file=file:/etc/cas/public.key
|
||||||
|
# cas.saml.googleapps.privatekey.file=file:/etc/cas/private.p8
|
||||||
|
# cas.saml.googleapps.key.alg=RSA
|
||||||
|
|
||||||
|
##
|
||||||
|
# WS-FED
|
||||||
|
#
|
||||||
|
# The claim from ADFS that should be used as the user's identifier.
|
||||||
|
# cas.wsfed.idp.idattribute=upn
|
||||||
|
#
|
||||||
|
# Federation Service identifier
|
||||||
|
# cas.wsfed.idp.id=https://adfs.example.org/adfs/services/trust
|
||||||
|
#
|
||||||
|
# The ADFS login url.
|
||||||
|
# cas.wsfed.idp.url=https://adfs.example.org/adfs/ls/
|
||||||
|
#
|
||||||
|
# Identifies resource(s) that point to ADFS's signing certificates.
|
||||||
|
# These are used verify the WS Federation token that is returned by ADFS.
|
||||||
|
# Multiple certificates may be separated by comma.
|
||||||
|
# cas.wsfed.idp.signingcerts=classpath:adfs-signing.crt
|
||||||
|
#
|
||||||
|
# Unique identifier that will be set in the ADFS configuration.
|
||||||
|
# cas.wsfed.rp.id=urn:cas:localhost
|
||||||
|
#
|
||||||
|
# Slack dealing with time-drift between the ADFS Server and the CAS Server.
|
||||||
|
# cas.wsfed.idp.tolerance=10000
|
||||||
|
#
|
||||||
|
# Decides which bundle of attributes should be resolved during WS-FED authentication.
|
||||||
|
# cas.wsfed.idp.attribute.resolver.enabled=true
|
||||||
|
# cas.wsfed.idp.attribute.resolver.type=WSFED
|
||||||
|
#
|
||||||
|
# Private/Public keypair used to decrypt assertions, if any.
|
||||||
|
# cas.wsfed.idp.enc.privateKey=classpath:private.key
|
||||||
|
# cas.wsfed.idp.enc.cert=classpath:certificate.crt
|
||||||
|
# cas.wsfed.idp.enc.privateKeyPassword=NONE
|
||||||
|
|
||||||
|
##
|
||||||
|
# LDAP User Details
|
||||||
|
#
|
||||||
|
# ldap.userdetails.service.user.attr=
|
||||||
|
# ldap.userdetails.service.role.attr=
|
||||||
|
|
||||||
|
##
|
||||||
|
# LDAP Service Registry
|
||||||
|
#
|
||||||
|
# svcreg.ldap.baseDn=dc=example,dc=org
|
||||||
|
|
||||||
|
##
|
||||||
|
# Password Policy
|
||||||
|
#
|
||||||
|
# Warn all users of expiration date regardless of warningDays value.
|
||||||
|
# password.policy.warnAll=false
|
||||||
|
|
||||||
|
# Threshold number of days to begin displaying password expiration warnings.
|
||||||
|
# password.policy.warningDays=30
|
||||||
|
|
||||||
|
# URL to which the user will be redirected to change the password.
|
||||||
|
# password.policy.url=https://password.example.edu/change
|
||||||
|
|
||||||
|
# password.policy.warn.attribute.name=attributeName
|
||||||
|
# password.policy.warn.attribute.value=attributeValue
|
||||||
|
# password.policy.warn.display.matched=true
|
||||||
|
|
||||||
|
##
|
||||||
|
# CAS REST API Services
|
||||||
|
#
|
||||||
|
# cas.rest.services.attributename=
|
||||||
|
# cas.rest.services.attributevalue=
|
||||||
|
|
||||||
|
##
|
||||||
|
# Ticket Registry
|
||||||
|
#
|
||||||
|
# Secret key to use when encrypting tickets in a distributed ticket registry.
|
||||||
|
# ticket.encryption.secretkey=C@$W3bSecretKey!
|
||||||
|
|
||||||
|
# Secret key to use when signing tickets in a distributed ticket registry.
|
||||||
|
# By default, must be a octet string of size 512.
|
||||||
|
# ticket.signing.secretkey=szxK-5_eJjs-aUj-64MpUZ-GPPzGLhYPLGl0wrYjYNVAGva2P0lLe6UGKGM7k8dWxsOVGutZWgvmY3l5oVPO3w
|
||||||
|
# Secret key algorithm used
|
||||||
|
# ticket.secretkey.alg=AES
|
||||||
|
|
||||||
|
##
|
||||||
|
# Hazelcast Ticket Registry
|
||||||
|
#
|
||||||
|
# hz.config.location=file:/etc/cas/hazelcast.xml
|
||||||
|
# hz.mapname=tickets
|
||||||
|
# hz.cluster.logging.type=slf4j
|
||||||
|
# hz.cluster.portAutoIncrement=true
|
||||||
|
# hz.cluster.port=5701
|
||||||
|
# hz.cluster.multicast.enabled=false
|
||||||
|
# hz.cluster.members=cas1.example.com,cas2.example.com
|
||||||
|
# hz.cluster.tcpip.enabled=true
|
||||||
|
# hz.cluster.multicast.enabled=false
|
||||||
|
# hz.cluster.max.heapsize.percentage=85
|
||||||
|
# hz.cluster.max.heartbeat.seconds=300
|
||||||
|
# hz.cluster.eviction.percentage=10
|
||||||
|
# hz.cluster.eviction.policy=LRU
|
||||||
|
# hz.cluster.instance.name=${host.name}
|
||||||
|
|
||||||
|
##
|
||||||
|
# Ehcache Ticket Registry
|
||||||
|
#
|
||||||
|
# ehcache.config.file=classpath:ehcache-replicated.xml
|
||||||
|
# ehcache.cachemanager.shared=false
|
||||||
|
# ehcache.cachemanager.name=ticketRegistryCacheManager
|
||||||
|
# ehcache.disk.expiry.interval.seconds=0
|
||||||
|
# ehcache.disk.persistent=false
|
||||||
|
# ehcache.eternal=false
|
||||||
|
# ehcache.max.elements.memory=10000
|
||||||
|
# ehcache.max.elements.disk=0
|
||||||
|
# ehcache.eviction.policy=LRU
|
||||||
|
# ehcache.overflow.disk=false
|
||||||
|
# ehcache.cache.st.name=org.jasig.cas.ticket.ServiceTicket
|
||||||
|
# ehcache.cache.st.timeIdle=0
|
||||||
|
# ehcache.cache.st.timeAlive=300
|
||||||
|
# ehcache.cache.tgt.name=org.jasig.cas.ticket.TicketGrantingTicket
|
||||||
|
# ehcache.cache.tgt.timeIdle=7201
|
||||||
|
# ehcache.cache.tgt.timeAlive=0
|
||||||
|
# ehcache.cache.loader.async=true
|
||||||
|
# ehcache.cache.loader.chunksize=5000000
|
||||||
|
# ehcache.repl.async.interval=10000
|
||||||
|
# ehcache.repl.async.batch.size=100
|
||||||
|
# ehcache.repl.sync.puts=true
|
||||||
|
# ehcache.repl.sync.putscopy=true
|
||||||
|
# ehcache.repl.sync.updates=true
|
||||||
|
# ehcache.repl.sync.updatesCopy=true
|
||||||
|
# ehcache.repl.sync.removals=true
|
||||||
|
|
||||||
|
##
|
||||||
|
# Ehcache Monitoring
|
||||||
|
#
|
||||||
|
# cache.monitor.warn.free.threshold=10
|
||||||
|
# cache.monitor.eviction.threshold=0
|
||||||
|
|
||||||
|
##
|
||||||
|
# Memcached Ticket Registry
|
||||||
|
#
|
||||||
|
# memcached.servers=localhost:11211
|
||||||
|
# memcached.hashAlgorithm=FNV1_64_HASH
|
||||||
|
# memcached.protocol=BINARY
|
||||||
|
# memcached.locatorType=ARRAY_MOD
|
||||||
|
# memcached.failureMode=Redistribute
|
||||||
|
|
||||||
|
##
|
||||||
|
# Memcached Monitoring
|
||||||
|
#
|
||||||
|
# cache.monitor.warn.free.threshold=10
|
||||||
|
# cache.monitor.eviction.threshold=0
|
||||||
|
|
||||||
|
##
|
||||||
|
# RADIUS Authentication Server
|
||||||
|
#
|
||||||
|
# cas.radius.client.inetaddr=localhost
|
||||||
|
# cas.radius.client.port.acct=
|
||||||
|
# cas.radius.client.socket.timeout=60
|
||||||
|
# cas.radius.client.port.authn=
|
||||||
|
# cas.radius.client.sharedsecret=N0Sh@ar3d$ecReT
|
||||||
|
# cas.radius.server.protocol=EAP_MSCHAPv2
|
||||||
|
# cas.radius.server.retries=3
|
||||||
|
# cas.radius.server.nasIdentifier=
|
||||||
|
# cas.radius.server.nasPort=-1
|
||||||
|
# cas.radius.server.nasPortId=-1
|
||||||
|
# cas.radius.server.nasRealPort=-1
|
||||||
|
# cas.radius.server.nasPortType=-1
|
||||||
|
# cas.radius.server.nasIpAddress=
|
||||||
|
# cas.radius.server.nasIpv6Address=
|
||||||
|
# cas.radius.failover.authn=false
|
||||||
|
# cas.radius.failover.exception=false
|
||||||
|
|
||||||
|
##
|
||||||
|
# SPNEGO Authentication
|
||||||
|
#
|
||||||
|
# cas.spnego.ldap.attribute=spnegoattribute
|
||||||
|
# cas.spnego.ldap.filter=host={0}
|
||||||
|
# cas.spnego.ldap.basedn=
|
||||||
|
# cas.spnego.hostname.pattern=.+
|
||||||
|
# cas.spnego.ip.pattern=
|
||||||
|
# cas.spnego.alt.remote.host.attribute
|
||||||
|
# cas.spengo.use.principal.domain=false
|
||||||
|
# cas.spnego.ntlm.allowed=true
|
||||||
|
# cas.spnego.kerb.debug=false
|
||||||
|
# cas.spnego.kerb.realm=EXAMPLE.COM
|
||||||
|
# cas.spnego.kerb.kdc=172.10.1.10
|
||||||
|
# cas.spnego.login.conf.file=/path/to/login
|
||||||
|
# cas.spnego.jcifs.domain=
|
||||||
|
# cas.spnego.jcifs.domaincontroller=
|
||||||
|
# cas.spnego.jcifs.netbios.cache.policy:600
|
||||||
|
# cas.spnego.jcifs.netbios.wins=
|
||||||
|
# cas.spnego.jcifs.password=
|
||||||
|
# cas.spnego.jcifs.service.password=
|
||||||
|
# cas.spnego.jcifs.socket.timeout:300000
|
||||||
|
# cas.spnego.jcifs.username=
|
||||||
|
# cas.spnego.kerb.conf=
|
||||||
|
# cas.spnego.ntlm=false
|
||||||
|
# cas.spnego.supportedBrowsers=MSIE,Trident,Firefox,AppleWebKit
|
||||||
|
# cas.spnego.mixed.mode.authn=false
|
||||||
|
# cas.spnego.send.401.authn.failure=false
|
||||||
|
# cas.spnego.principal.resolver.transform=NONE
|
||||||
|
# cas.spnego.service.principal=HTTP/cas.example.com@EXAMPLE.COM
|
||||||
|
|
||||||
|
##
|
||||||
|
# NTLM Authentication
|
||||||
|
#
|
||||||
|
# ntlm.authn.domain.controller=
|
||||||
|
# ntlm.authn.include.pattern=
|
||||||
|
# ntlm.authn.load.balance=true
|
||||||
|
|
||||||
|
##
|
||||||
|
# Authentication delegation using pac4j
|
||||||
|
#
|
||||||
|
# cas.pac4j.client.authn.typedidused=true
|
||||||
|
# cas.pac4j.facebook.id=
|
||||||
|
# cas.pac4j.facebook.secret=
|
||||||
|
# cas.pac4j.facebook.scope=
|
||||||
|
# cas.pac4j.facebook.fields=
|
||||||
|
# cas.pac4j.twitter.id=
|
||||||
|
# cas.pac4j.twitter.secret=
|
||||||
|
# cas.pac4j.saml.keystorePassword=
|
||||||
|
# cas.pac4j.saml.privateKeyPassword=
|
||||||
|
# cas.pac4j.saml.keystorePath=
|
||||||
|
# cas.pac4j.saml.identityProviderMetadataPath=
|
||||||
|
# cas.pac4j.saml.maximumAuthenticationLifetime=
|
||||||
|
# cas.pac4j.saml.serviceProviderEntityId=
|
||||||
|
# cas.pac4j.saml.serviceProviderMetadataPath=
|
||||||
|
# cas.pac4j.cas.loginUrl=
|
||||||
|
# cas.pac4j.cas.protocol=
|
||||||
|
# cas.pac4j.oidc.id=
|
||||||
|
# cas.pac4j.oidc.secret=
|
||||||
|
# cas.pac4j.oidc.discoveryUri=
|
||||||
|
# cas.pac4j.oidc.useNonce=
|
||||||
|
# cas.pac4j.oidc.preferredJwsAlgorithm=
|
||||||
|
# cas.pac4j.oidc.maxClockSkew=
|
||||||
|
# cas.pac4j.oidc.customParamKey1=
|
||||||
|
# cas.pac4j.oidc.customParamValue1=
|
||||||
|
# cas.pac4j.oidc.customParamKey2=
|
||||||
|
# cas.pac4j.oidc.customParamValue2=
|
||||||
|
|
||||||
|
##
|
||||||
|
# CAS Acceptable Usage Policy Settings
|
||||||
|
#
|
||||||
|
# cas.aup.ldap.search.filter=cn={0}
|
||||||
|
# cas.aup.ldap.url=ldap://127.0.0.1:1389
|
||||||
|
# cas.aup.ldap.ssl=false
|
||||||
|
# cas.aup.ldap.startTLS=false
|
||||||
|
# cas.aup.ldap.basedn=dc=example,dc=org
|
||||||
|
# cas.aup.attribute=
|
125
log4j2.xml
Normal file
125
log4j2.xml
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!-- Specify the refresh internal in seconds. -->
|
||||||
|
<Configuration monitorInterval="60">
|
||||||
|
|
||||||
|
<Properties>
|
||||||
|
<Property name="log.level">DEBUG</Property>
|
||||||
|
<Property name="log.dir">.logs</Property>
|
||||||
|
<Property name="pattern">%-d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%t][%c{1.}] %m%n</Property>
|
||||||
|
</Properties>
|
||||||
|
|
||||||
|
<Appenders>
|
||||||
|
<Console name="console" target="SYSTEM_OUT">
|
||||||
|
<PatternLayout pattern="%highlight{%-d{yyyy-MM-dd HH:mm:ss,SSS}}{FATAL=magenta, ERROR=magenta, WARN=magenta, INFO=magenta, DEBUG=magenta, TRACE=magenta} %highlight{%-5p}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=black, DEBUG=green bold, TRACE=blue} [%t][%highlight{%c{1.}}{FATAL=cyan, ERROR=cyan, WARN=cyan, INFO=cyan, DEBUG=cyan, TRACE=cyan}] %m%n"/>
|
||||||
|
</Console>
|
||||||
|
|
||||||
|
<RollingFile name="appLogFile"
|
||||||
|
fileName="${log.dir}/app.log"
|
||||||
|
filePattern="${log.dir}/$${date:yyyy-MM}/app-%d{yyyy-MM-dd}-%i.log">
|
||||||
|
<PatternLayout pattern="${pattern}" />
|
||||||
|
<Policies>
|
||||||
|
<OnStartupTriggeringPolicy />
|
||||||
|
<TimeBasedTriggeringPolicy />
|
||||||
|
<SizeBasedTriggeringPolicy size="16 MB" />
|
||||||
|
</Policies>
|
||||||
|
<DefaultRolloverStrategy max="32" />
|
||||||
|
</RollingFile>
|
||||||
|
|
||||||
|
<RollingFile name="errorLogFile"
|
||||||
|
fileName="${log.dir}/error.log"
|
||||||
|
filePattern="${log.dir}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
|
||||||
|
<PatternLayout pattern="${pattern}" />
|
||||||
|
<Policies>
|
||||||
|
<OnStartupTriggeringPolicy />
|
||||||
|
<TimeBasedTriggeringPolicy />
|
||||||
|
<SizeBasedTriggeringPolicy size="16 MB" />
|
||||||
|
</Policies>
|
||||||
|
<DefaultRolloverStrategy max="32" />
|
||||||
|
</RollingFile>
|
||||||
|
|
||||||
|
<RollingFile name="casLogFile"
|
||||||
|
append="true"
|
||||||
|
fileName="${log.dir}/cas.log"
|
||||||
|
filePattern="${log.dir}/$${date:yyyy-MM}/cas-%d{yyyy-MM-dd}-%i.log">
|
||||||
|
|
||||||
|
<PatternLayout pattern="${pattern}" />
|
||||||
|
<Policies>
|
||||||
|
<OnStartupTriggeringPolicy />
|
||||||
|
<TimeBasedTriggeringPolicy />
|
||||||
|
<SizeBasedTriggeringPolicy size="16 MB" />
|
||||||
|
</Policies>
|
||||||
|
<DefaultRolloverStrategy max="64" />
|
||||||
|
</RollingFile>
|
||||||
|
|
||||||
|
<RollingFile name="auditLogFile"
|
||||||
|
append="true"
|
||||||
|
fileName="${log.dir}/audit.log"
|
||||||
|
filePattern="${log.dir}/$${date:yyyy-MM}/audit-%d{yyyy-MM-dd}-%i.log">
|
||||||
|
<PatternLayout pattern="${pattern}" />
|
||||||
|
<Policies>
|
||||||
|
<OnStartupTriggeringPolicy />
|
||||||
|
<TimeBasedTriggeringPolicy />
|
||||||
|
<SizeBasedTriggeringPolicy size="16 MB" />
|
||||||
|
</Policies>
|
||||||
|
<DefaultRolloverStrategy max="64" />
|
||||||
|
</RollingFile>
|
||||||
|
|
||||||
|
<RollingFile name="perfStatsLogFile"
|
||||||
|
append="true"
|
||||||
|
fileName="${log.dir}/perfStats.log"
|
||||||
|
filePattern="${log.dir}/$${date:yyyy-MM}/perfStats-%d{yyyy-MM-dd}-%i.log">
|
||||||
|
<PatternLayout pattern="%m%n"/>
|
||||||
|
<Policies>
|
||||||
|
<OnStartupTriggeringPolicy />
|
||||||
|
<TimeBasedTriggeringPolicy />
|
||||||
|
<SizeBasedTriggeringPolicy size="16 MB" />
|
||||||
|
</Policies>
|
||||||
|
<DefaultRolloverStrategy max="64" />
|
||||||
|
</RollingFile>
|
||||||
|
</Appenders>
|
||||||
|
|
||||||
|
<Loggers>
|
||||||
|
<AsyncLogger name="org.jasig" level="info" additivity="false" includeLocation="true">
|
||||||
|
<AppenderRef ref="console"/>
|
||||||
|
<AppenderRef ref="casLogFile"/>
|
||||||
|
</AsyncLogger>
|
||||||
|
<!--
|
||||||
|
<AsyncLogger name="org.opensaml" level="debug" additivity="false">
|
||||||
|
<AppenderRef ref="console"/>
|
||||||
|
<AppenderRef ref="casLogFile"/>
|
||||||
|
</AsyncLogger>
|
||||||
|
<AsyncLogger name="org.ldaptive" level="debug" additivity="false">
|
||||||
|
<AppenderRef ref="console"/>
|
||||||
|
<AppenderRef ref="casLogFile"/>
|
||||||
|
</AsyncLogger>
|
||||||
|
<AsyncLogger name="com.hazelcast" level="debug" additivity="false">
|
||||||
|
<AppenderRef ref="console"/>
|
||||||
|
<AppenderRef ref="casLogFile"/>
|
||||||
|
</AsyncLogger>
|
||||||
|
-->
|
||||||
|
<AsyncLogger name="org.apereo.cas.security" level="warn" additivity="false" includeLocation="true">
|
||||||
|
<AppenderRef ref="console"/>
|
||||||
|
<AppenderRef ref="casLogFile"/>
|
||||||
|
</AsyncLogger>
|
||||||
|
<AsyncLogger name="perfStatsLogger" level="info" additivity="false" includeLocation="true">
|
||||||
|
<AppenderRef ref="perfStatsLogFile"/>
|
||||||
|
</AsyncLogger>
|
||||||
|
<AsyncLogger name="org.jasig.cas.web.flow" level="info" additivity="true" includeLocation="true">
|
||||||
|
<AppenderRef ref="casLogFile"/>
|
||||||
|
</AsyncLogger>
|
||||||
|
<AsyncLogger name="org.jasig.inspektr.audit.support" level="info" includeLocation="true">
|
||||||
|
<AppenderRef ref="auditLogFile"/>
|
||||||
|
<AppenderRef ref="casLogFile"/>
|
||||||
|
</AsyncLogger>
|
||||||
|
|
||||||
|
<AsyncRoot level="${log.level}">
|
||||||
|
<AppenderRef ref="console"/>
|
||||||
|
<AppenderRef ref="appLogFile"/>
|
||||||
|
</AsyncRoot>
|
||||||
|
|
||||||
|
<AsyncRoot level="error">
|
||||||
|
<AppenderRef ref="console"/>
|
||||||
|
<AppenderRef ref="errorLogFile"/>
|
||||||
|
</AsyncRoot>
|
||||||
|
</Loggers>
|
||||||
|
</Configuration>
|
36
pom.xml
36
pom.xml
@ -18,8 +18,11 @@
|
|||||||
<metrics.version>3.1.5</metrics.version>
|
<metrics.version>3.1.5</metrics.version>
|
||||||
|
|
||||||
<java.version>1.8</java.version>
|
<java.version>1.8</java.version>
|
||||||
|
<maven.compiler.source>1.8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>1.8</maven.compiler.target>
|
||||||
<project.build.sourceVersion>1.8</project.build.sourceVersion>
|
<project.build.sourceVersion>1.8</project.build.sourceVersion>
|
||||||
<project.build.targetVersion>1.8</project.build.targetVersion>
|
<project.build.targetVersion>1.8</project.build.targetVersion>
|
||||||
|
|
||||||
<maven.compiler.aspectj.skip>false</maven.compiler.aspectj.skip>
|
<maven.compiler.aspectj.skip>false</maven.compiler.aspectj.skip>
|
||||||
<maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss.SSS</maven.build.timestamp.format>
|
<maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss.SSS</maven.build.timestamp.format>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
@ -28,8 +31,8 @@
|
|||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.pudonghot.emtomcat</groupId>
|
<groupId>me.chyxion.emtc</groupId>
|
||||||
<artifactId>emtomcat-core</artifactId>
|
<artifactId>emtomcat</artifactId>
|
||||||
<version>0.0.1</version>
|
<version>0.0.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
@ -200,20 +203,18 @@
|
|||||||
</exclusion>
|
</exclusion>
|
||||||
</exclusions>
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!--
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.mchange</groupId>
|
|
||||||
<artifactId>c3p0</artifactId>
|
|
||||||
<version>0.9.5.2</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.bouncycastle</groupId>
|
<groupId>org.bouncycastle</groupId>
|
||||||
<artifactId>bcprov-jdk15on</artifactId>
|
<artifactId>bcprov-jdk15on</artifactId>
|
||||||
<version>1.51</version>
|
<version>1.51</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
-->
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>1.18.16</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
<artifactId>spring-test</artifactId>
|
<artifactId>spring-test</artifactId>
|
||||||
@ -230,6 +231,21 @@
|
|||||||
|
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>3.7.0</version>
|
||||||
|
<configuration>
|
||||||
|
<source>${maven.compiler.source}</source>
|
||||||
|
<target>${maven.compiler.target}</target>
|
||||||
|
<encoding>${project.build.sourceEncoding}</encoding>
|
||||||
|
<compilerArgs>
|
||||||
|
<!--<arg>-verbose</arg>-->
|
||||||
|
<!--<arg>-Xlint:all,-options,-path</arg>-->
|
||||||
|
<arg>-Xlint:unchecked</arg>
|
||||||
|
</compilerArgs>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
@ -1,14 +1,85 @@
|
|||||||
package org.jasig.cas.web;
|
package org.jasig.cas.web;
|
||||||
|
|
||||||
import com.pudonghot.emtomcat.EmTomcat;
|
import lombok.val;
|
||||||
|
import java.io.File;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Properties;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import me.chyxion.emtc.EmTomcat;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.logging.log4j.core.config.Configurator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Donghuang
|
* @author Donghuang
|
||||||
* @date Jul 24, 2021 15:15:58
|
* @date Jul 24, 2021 15:15:58
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
public class CasWebServer {
|
public class CasWebServer {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
static final String ARG_LOGGING_CONFIG_NAME = "--logging.config=";
|
||||||
EmTomcat.run(8090);
|
static final String ARG_SPRING_CONFIG_NAME = "--spring.config.location=";
|
||||||
|
static final String ARG_SERVER_PORT = "--server.port=";
|
||||||
|
static final String PROP_SPRING_CONFIG_NAME = "spring.config.location";
|
||||||
|
static final String PROP_SERVER_PORT_NAME = "server.port";
|
||||||
|
|
||||||
|
public static void main(final String[] args) throws IOException {
|
||||||
|
Integer port = null;
|
||||||
|
for (val arg : args) {
|
||||||
|
if (arg.startsWith(ARG_LOGGING_CONFIG_NAME)) {
|
||||||
|
val loggingConfig = arg.substring(ARG_LOGGING_CONFIG_NAME.length());
|
||||||
|
if (StringUtils.isNotBlank(loggingConfig)) {
|
||||||
|
val configFile = new File(loggingConfig);
|
||||||
|
if (!configFile.isFile()) {
|
||||||
|
throw new FileNotFoundException(
|
||||||
|
"Log4j2 config [" + loggingConfig + "] is not a valid file");
|
||||||
|
}
|
||||||
|
|
||||||
|
Configurator.initialize(null, loggingConfig);
|
||||||
|
log.info("Logging config [{}] loaded.", loggingConfig);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arg.startsWith(ARG_SPRING_CONFIG_NAME)) {
|
||||||
|
val springConfig = arg.substring(ARG_SPRING_CONFIG_NAME.length());
|
||||||
|
if (StringUtils.isNotBlank(springConfig)) {
|
||||||
|
System.setProperty(PROP_SPRING_CONFIG_NAME, springConfig);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arg.startsWith(ARG_SERVER_PORT)) {
|
||||||
|
val serverPort = arg.substring(ARG_SERVER_PORT.length());
|
||||||
|
if (StringUtils.isNotBlank(serverPort)) {
|
||||||
|
log.info("Server port [{}] got from command line.", serverPort);
|
||||||
|
port = Integer.parseInt(serverPort);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (port == null) {
|
||||||
|
val springConfig = System.getProperty(PROP_SPRING_CONFIG_NAME);
|
||||||
|
if (StringUtils.isNotBlank(springConfig)) {
|
||||||
|
log.info("Load spring config [{}].", springConfig);
|
||||||
|
try (val fin = new File(springConfig).isFile() ?
|
||||||
|
new FileInputStream(springConfig) :
|
||||||
|
new URL(springConfig).openStream()) {
|
||||||
|
|
||||||
|
val props = new Properties();
|
||||||
|
props.load(fin);
|
||||||
|
val serverPort = props.getProperty(PROP_SERVER_PORT_NAME);
|
||||||
|
if (StringUtils.isNotBlank(serverPort)) {
|
||||||
|
log.info("Server port [{}] got from spring config.", serverPort);
|
||||||
|
port = Integer.parseInt(serverPort);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EmTomcat.run(port != null ? port : 8080);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
can be moved between tiers without modification.
|
can be moved between tiers without modification.
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
<util:properties id="casProperties" location="${cas.properties.config.location:/WEB-INF/cas.properties}"/>
|
<util:properties id="casProperties" location="${spring.config.location:/WEB-INF/cas.properties}"/>
|
||||||
|
|
||||||
<context:property-placeholder properties-ref="casProperties"/>
|
<context:property-placeholder properties-ref="casProperties"/>
|
||||||
|
|
||||||
|
3
start.sh
3
start.sh
@ -28,6 +28,9 @@ echo "Work dir [$WORK_DIR]"
|
|||||||
mvn -T 4C -DskipTests clean \
|
mvn -T 4C -DskipTests clean \
|
||||||
spring-boot:run \
|
spring-boot:run \
|
||||||
-Dspring-boot.run.jvmArguments='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000' \
|
-Dspring-boot.run.jvmArguments='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000' \
|
||||||
|
-Dspring-boot.run.arguments="--spring.main.banner-mode=OFF
|
||||||
|
--spring.config.location=file://$WORK_DIR/cas.properties
|
||||||
|
--logging.config=$WORK_DIR/log4j2.xml" \
|
||||||
-Dspring-boot.run.fork=false
|
-Dspring-boot.run.fork=false
|
||||||
|
|
||||||
popd > /dev/null
|
popd > /dev/null
|
||||||
|
Loading…
x
Reference in New Issue
Block a user