Skip to content

Commit 55a548b

Browse files
committed
first commit
1 parent d3cd40f commit 55a548b

File tree

10 files changed

+248
-0
lines changed

10 files changed

+248
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.idea/

Dockerfile

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
ARG BASE_IMAGE="azul/zulu-openjdk:21"
2+
ARG EXT_BUILD_COMMANDS=""
3+
ARG EXT_BUILD_OPTIONS=""
4+
5+
FROM $BASE_IMAGE as overlay
6+
7+
RUN cd /tmp && \
8+
apt-get update && \
9+
apt-get install -y git && \
10+
git clone -b master --single-branch https://github.com/apereo/cas-overlay-template.git cas-overlay
11+
12+
WORKDIR /tmp/cas-overlay
13+
14+
COPY src/ /tmp/cas-overlay/src/
15+
16+
RUN ./gradlew clean build $EXT_BUILD_COMMANDS --parallel --no-daemon $EXT_BUILD_OPTIONS
17+
18+
FROM $BASE_IMAGE as cas
19+
20+
RUN mkdir -p /etc/cas && \
21+
cd /etc/cas && \
22+
keytool -genkey -noprompt -keystore thekeystore -storepass changeit -keypass changeit -validity 3650 \
23+
-keysize 2048 -keyalg RSA -dname "CN=localhost, OU=MyOU, O=MyOrg, L=Somewhere, S=VA, C=US"
24+
RUN if [ -r /etc/cas/config/certificate.pem ]; then \
25+
keytool -noprompt -importcert -keystore /etc/ssl/certs/java/cacerts -storepass changeit \
26+
-file /etc/cas/config/certificate.pem -alias "casclient"; \
27+
fi
28+
29+
WORKDIR /data
30+
31+
COPY --from=overlay /tmp/cas-overlay/build/libs/cas.war .
32+
COPY rootfs /
33+
34+
EXPOSE 8080 8443
35+
36+
ENTRYPOINT ["java", "-server", "-noverify", "-Xmx2048M", "-jar", "cas.war"]

compose.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
version: '3'
2+
3+
services:
4+
cas:
5+
container_name: cas
6+
build: .
7+
ports:
8+
- "8080:8080"
9+
- "8443:8443"
10+
volumes:
11+
- "./rootfs/etc/cas/config:/etc/cas/config"
12+
- "./rootfs/etc/cas/services:/etc/cas/services"
13+
wiki:
14+
container_name: wiki
15+
image: ghcr.io/requarks/wiki:2
16+
ports:
17+
- "3000:3000"
18+
environment:
19+
DB_TYPE: sqlite
20+
TZ: Europe/Paris
21+
DB_FILEPATH: /wiki/db/database.sqlite
22+
volumes:
23+
- "./db:/wiki/db"

db/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*
2+
!.gitignore
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
info:
2+
description: CAS Configuration
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
server.servlet.context-path=/cas
2+
3+
# By default and if you remove this setting, CAS runs on port 8080
4+
server.port=8443
5+
6+
# To disable SSL configuration, comment out the following settings or set to blank values.
7+
server.ssl.keyStore=file:/etc/cas/thekeystore
8+
server.ssl.keyStorePassword=changeit
9+
server.ssl.keyPassword=changeit
10+
# server.ssl.ciphers=
11+
# server.ssl.clientAuth=
12+
# server.ssl.enabled=
13+
# server.ssl.keyAlias=
14+
# server.ssl.keyStoreProvider=
15+
# server.ssl.keyStoreType=
16+
# server.ssl.protocol=
17+
# server.ssl.trustStore=
18+
# server.ssl.trustStorePassword=
19+
# server.ssl.trustStoreProvider=
20+
# server.ssl.trustStoreType=
21+
22+
server.maxHttpHeaderSize=2097152
23+
server.useForwardHeaders=true
24+
server.connectionTimeout=20000
25+
26+
cas.server.name=https://host.docker.internal:8443
27+
cas.server.prefix=https://host.docker.internal:8443/cas
28+
29+
#
30+
#
31+
#logging.config=file:/etc/cas/config/log4j2.xml
32+
; cas.serviceRegistry.initFromJson=true
33+
cas.service-registry.json.location=file:/etc/cas/services
34+
35+
; cas.proxyPolicy.allowedToProxy=true
36+
37+
# Logout configuration
38+
cas.logout.followServiceRedirects=true
39+
cas.logout.redirectParameter=service
40+
cas.logout.confirmLogout=true
41+
cas.slo.disabled=false
42+
43+
cas.ticket.pt.timeToKillInSeconds=60
44+
cas.ticket.st.timeToKillInSeconds=60
45+
cas.ticket.tgt.primary.max-time-to-live-in-seconds=1209600
46+
cas.ticket.tgt.primary.time-to-kill-in-seconds=28800
47+
48+
cas.authn.accept.users=user1::password1,user2::password2
49+
logging.config: file:/etc/cas/config/log4j2.xml

rootfs/etc/cas/config/log4j2.xml

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<!-- Specify the refresh internal in seconds. -->
3+
<Configuration monitorInterval="5" packages="org.apereo.cas.logging">
4+
<Properties>
5+
<!--
6+
Default log directory is the current directory but that can be overridden with -Dcas.log.dir=<logdir>
7+
Or you can change this property to a new default
8+
-->
9+
<Property name="cas.log.dir" >.</Property>
10+
<!-- To see more CAS specific logging, adjust this property to info or debug or run server with -Dcas.log.leve=debug -->
11+
<Property name="cas.log.level" >warn</Property>
12+
</Properties>
13+
<Appenders>
14+
<Console name="console" target="SYSTEM_OUT">
15+
<PatternLayout pattern="%d %p [%c] - &lt;%m&gt;%n"/>
16+
</Console>
17+
<RollingFile name="file" fileName="${sys:cas.log.dir}/cas.log" append="true"
18+
filePattern="${sys:cas.log.dir}/cas-%d{yyyy-MM-dd-HH}-%i.log">
19+
<PatternLayout pattern="%d %p [%c] - &lt;%m&gt;%n"/>
20+
<Policies>
21+
<OnStartupTriggeringPolicy />
22+
<SizeBasedTriggeringPolicy size="10 MB"/>
23+
<TimeBasedTriggeringPolicy />
24+
</Policies>
25+
</RollingFile>
26+
<RollingFile name="auditlogfile" fileName="${sys:cas.log.dir}/cas_audit.log" append="true"
27+
filePattern="${sys:cas.log.dir}/cas_audit-%d{yyyy-MM-dd-HH}-%i.log">
28+
<PatternLayout pattern="%d %p [%c] - %m%n"/>
29+
<Policies>
30+
<OnStartupTriggeringPolicy />
31+
<SizeBasedTriggeringPolicy size="10 MB"/>
32+
<TimeBasedTriggeringPolicy />
33+
</Policies>
34+
</RollingFile>
35+
36+
<RollingFile name="perfFileAppender" fileName="${sys:cas.log.dir}/perfStats.log" append="true"
37+
filePattern="${sys:cas.log.dir}/perfStats-%d{yyyy-MM-dd-HH}-%i.log">
38+
<PatternLayout pattern="%m%n"/>
39+
<Policies>
40+
<OnStartupTriggeringPolicy />
41+
<SizeBasedTriggeringPolicy size="10 MB"/>
42+
<TimeBasedTriggeringPolicy />
43+
</Policies>
44+
</RollingFile>
45+
46+
<CasAppender name="casAudit">
47+
<AppenderRef ref="auditlogfile" />
48+
</CasAppender>
49+
<CasAppender name="casFile">
50+
<AppenderRef ref="file" />
51+
</CasAppender>
52+
<CasAppender name="casConsole">
53+
<AppenderRef ref="console" />
54+
</CasAppender>
55+
<CasAppender name="casPerf">
56+
<AppenderRef ref="perfFileAppender" />
57+
</CasAppender>
58+
</Appenders>
59+
<Loggers>
60+
<!-- If adding a Logger with level set higher than warn, make category as selective as possible -->
61+
<!-- Loggers inherit appenders from Root Logger unless additivity is false -->
62+
<AsyncLogger name="org.apereo" level="${sys:cas.log.level}" includeLocation="true"/>
63+
<AsyncLogger name="org.apereo.services.persondir" level="${sys:cas.log.level}" includeLocation="true"/>
64+
<AsyncLogger name="org.apereo.cas.web.flow" level="info" includeLocation="true"/>
65+
<AsyncLogger name="org.apache" level="warn" />
66+
<AsyncLogger name="org.apache.http" level="error" />
67+
<AsyncLogger name="org.springframework" level="warn" />
68+
<AsyncLogger name="org.springframework.cloud.server" level="warn" />
69+
<AsyncLogger name="org.springframework.cloud.client" level="warn" />
70+
<AsyncLogger name="org.springframework.cloud.bus" level="warn" />
71+
<AsyncLogger name="org.springframework.aop" level="warn" />
72+
<AsyncLogger name="org.springframework.boot" level="warn" />
73+
<AsyncLogger name="org.springframework.boot.actuate.autoconfigure" level="warn" />
74+
<AsyncLogger name="org.springframework.webflow" level="warn" />
75+
<AsyncLogger name="org.springframework.session" level="warn" />
76+
<AsyncLogger name="org.springframework.amqp" level="error" />
77+
<AsyncLogger name="org.springframework.integration" level="warn" />
78+
<AsyncLogger name="org.springframework.messaging" level="warn" />
79+
<AsyncLogger name="org.springframework.web" level="warn" />
80+
<AsyncLogger name="org.springframework.orm.jpa" level="warn" />
81+
<AsyncLogger name="org.springframework.scheduling" level="warn" />
82+
<AsyncLogger name="org.springframework.context.annotation" level="error" />
83+
<AsyncLogger name="org.springframework.boot.devtools" level="error" />
84+
<AsyncLogger name="org.springframework.web.socket" level="warn" />
85+
<AsyncLogger name="org.thymeleaf" level="warn" />
86+
<AsyncLogger name="org.pac4j" level="warn" />
87+
<AsyncLogger name="org.opensaml" level="warn"/>
88+
<AsyncLogger name="net.sf.ehcache" level="warn" />
89+
<AsyncLogger name="com.couchbase" level="warn" includeLocation="true"/>
90+
<AsyncLogger name="com.ryantenney.metrics" level="warn" />
91+
<AsyncLogger name="net.jradius" level="warn" />
92+
<AsyncLogger name="org.openid4java" level="warn" />
93+
<AsyncLogger name="org.ldaptive" level="warn" />
94+
<AsyncLogger name="com.hazelcast" level="warn" />
95+
<AsyncLogger name="org.jasig.spring" level="warn" />
96+
97+
<!-- Log perf stats only to perfStats.log -->
98+
<AsyncLogger name="perfStatsLogger" level="info" additivity="false" includeLocation="true">
99+
<AppenderRef ref="casPerf"/>
100+
</AsyncLogger>
101+
102+
<!-- Log audit to all root appenders, and also to audit log (additivity is not false) -->
103+
<AsyncLogger name="org.apereo.inspektr.audit.support" level="info" includeLocation="true" >
104+
<AppenderRef ref="casAudit"/>
105+
</AsyncLogger>
106+
107+
<!-- All Loggers inherit appenders specified here, unless additivity="false" on the Logger -->
108+
<AsyncRoot level="warn">
109+
<AppenderRef ref="casFile"/>
110+
<!--
111+
For deployment to an application server running as service,
112+
delete the casConsole appender below
113+
-->
114+
<AppenderRef ref="casConsole"/>
115+
</AsyncRoot>
116+
</Loggers>
117+
</Configuration>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"@class" : "org.apereo.cas.services.RegexRegisteredService",
3+
"serviceId" : ".*",
4+
"name" : "Everything",
5+
"id" : 1,
6+
"description" : "Everything is accepted by this definition.",
7+
"evaluationOrder" : 1,
8+
"proxyPolicy" : {
9+
"@class" : "org.apereo.cas.services.RegexMatchingRegisteredServiceProxyPolicy",
10+
"pattern": "^https?://.*"
11+
}
12+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"@class" : "org.apereo.cas.services.CasRegisteredService",
3+
"serviceId" : "^(https?|imaps?|http?)://host.docker.internal:3000.*",
4+
"name" : "wiki",
5+
"id" : 1675427745
6+
}

src/.gitkeep

Whitespace-only changes.

0 commit comments

Comments
 (0)