securing with nextcloud oidc

This commit is contained in:
Jottyfan
2023-12-26 18:28:37 +01:00
parent 6fdd4a57e0
commit 47bcd311ea
15 changed files with 86 additions and 43 deletions

View File

@@ -0,0 +1,9 @@
{
"properties": [
{
"name": "nextcloud.url",
"type": "java.lang.String",
"description": "the URL to nextcloud for logout operations"
}
]
}

View File

@@ -10,4 +10,11 @@ spring.datasource.password = ${db.password}
server.servlet.context-path = ${my.context-path:/BiCO}
# for development only
server.port = 8081
server.port = ${server.port}
# nextcloud open ID connection
spring.security.oauth2.client.provider.nextcloud.issuer-uri = ${nextcloud.issuer-uri}
spring.security.oauth2.client.registration.nextcloud.client-id = ${nextcloud.client-id}
spring.security.oauth2.client.registration.nextcloud.client-secret = ${nextcloud.client-secret}
spring.security.oauth2.client.registration.nextcloud.authorization-grant-type = authorization_code
spring.security.oauth2.client.registration.nextcloud.redirect-uri = ${nextcloud.redirect-uri}

View File

@@ -0,0 +1,10 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" layout:decorate="~{template}" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<body>
<th:block layout:fragment="content">
<div class="borderdist">
<div class="alert alert-danger">Es ist ein Fehler aufgetreten. Wenden Sie sich bitte an Ihren Entwickler.</div>
</div>
</th:block>
</body>
</html>

View File

@@ -3,7 +3,7 @@
<body>
<th:block layout:fragment="content">
<div class="borderdist">
<div class="container">
<div class="container" sec:authorize="hasRole('Bibelunterricht')">
<div class="row g-2">
<div class="col-sm-12">
<h2>Dozent-Reservierung</h2>

View File

@@ -3,7 +3,7 @@
<body>
<th:block layout:fragment="content">
<div class="borderdist">
<table id="table" class="table table-striped">
<table id="table" class="table table-striped" sec:authorize="hasRole('Bibelunterricht')">
<thead>
<tr>
<th>Tag</th>

View File

@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org" layout:decorate="~{template}" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<body>
<th:block layout:fragment="content">
<div class="borderdist">
<div class="borderdist" sec:authorize="hasRole('Bibelunterricht')">
<div class="alert alert-danger" th:if="${bean}">
Wollen Sie den Slot <span th:text="${#temporals.format(bean.slotDay, 'dd.MM.yyyy')}"></span> wirklich löschen?<br />
<a th:href="@{/slot/{id}/destroy(id=${bean.pkSlot})}" class="btn btn-outline-danger" th:if="${bean.pkSlot}">Ja, definitiv</a>

View File

@@ -3,7 +3,7 @@
<body>
<th:block layout:fragment="content">
<div class="borderdist">
<div class="container">
<div class="container" sec:authorize="hasRole('Bibelunterricht')">
<div class="row g-2">
<div class="col-sm-12">
<h2>Terminfestlegung</h2>

View File

@@ -21,7 +21,7 @@
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent" style="margin-right: 20px">
<ul class="navbar-nav mb-2 mb-lg-0">
<ul class="navbar-nav mb-2 mb-lg-0" th:if="${hasBUrole}">
<li class="nav-item"><a class="btn btn-outline-secondary" th:href="@{/}" style="margin-left: 12px">Einteilung</a></li>
<li class="nav-item"><a class="btn btn-outline-secondary" th:href="@{/subject/list}" style="margin-left: 12px">Themen</a></li>
</ul>
@@ -34,11 +34,16 @@
<a href="#" class="btn btn-outline-secondary" onclick="toggleDarkMode()"><i class="bi bi-moon"></i></a>
</li>
<li class="nav-item">
<a th:href="@{/logout}" class="btn btn-outline-secondary">abmelden</a>
<a th:href="@{${nextcloudUrl}}" class="btn btn-outline-secondary">&#8594; nextcloud</a>
</li>
</ul>
</div>
</nav>
<div layout:fragment="content">content</div>
<div layout:fragment="content" th:if="${hasBUrole}">content</div>
<div th:unless="${hasBUrole}">
<div class="borderdist">
<div class="alert alert-danger">Leider fehlen Ihnen die Berechtigungen, um diese Anwendung nutzen zu können.</div>
</div>
</div>
</body>
</html>

View File

@@ -3,7 +3,7 @@
<body>
<th:block layout:fragment="content">
<div class="borderdist">
<div class="container">
<div class="container" sec:authorize="hasRole('Bibelunterricht')">
<div class="row g-2">
<h1>
Themen für den <span th:text="${#temporals.format(day, 'dd.MM.yyyy')}"></span>