added basic spring boot security
This commit is contained in:
		| @@ -4,6 +4,7 @@ import org.springframework.boot.SpringApplication; | ||||
| import org.springframework.boot.autoconfigure.SpringBootApplication; | ||||
| import org.springframework.boot.builder.SpringApplicationBuilder; | ||||
| import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; | ||||
| import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | ||||
|  | ||||
| /** | ||||
|  * | ||||
| @@ -11,6 +12,7 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer | ||||
|  * | ||||
|  */ | ||||
| @SpringBootApplication | ||||
| @EnableWebSecurity | ||||
| public class Main extends SpringBootServletInitializer { | ||||
| 	@Override | ||||
| 	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { | ||||
|   | ||||
| @@ -17,7 +17,7 @@ import org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy; | ||||
|  * | ||||
|  */ | ||||
| @Configuration | ||||
| public class DatabaseConfiguration { | ||||
| public class DatabaseConfig { | ||||
| 	@Autowired | ||||
| 	private DataSource dataSource; | ||||
| 
 | ||||
							
								
								
									
										34
									
								
								src/main/java/de/jottyfan/bico/config/SecurityConfig.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								src/main/java/de/jottyfan/bico/config/SecurityConfig.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| package de.jottyfan.bico.config; | ||||
|  | ||||
| import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; | ||||
| import org.springframework.context.ApplicationEventPublisher; | ||||
| import org.springframework.context.annotation.Bean; | ||||
| import org.springframework.context.annotation.Configuration; | ||||
| import org.springframework.security.authentication.AuthenticationEventPublisher; | ||||
| import org.springframework.security.authentication.DefaultAuthenticationEventPublisher; | ||||
| import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; | ||||
| import org.springframework.security.core.userdetails.User; | ||||
| import org.springframework.security.core.userdetails.UserDetailsService; | ||||
| import org.springframework.security.provisioning.InMemoryUserDetailsManager; | ||||
|  | ||||
| /** | ||||
|  * | ||||
|  * @author jotty | ||||
|  * | ||||
|  */ | ||||
| @Configuration | ||||
| @EnableWebSecurity | ||||
| public class SecurityConfig { | ||||
|  | ||||
| 	@Bean | ||||
| 	@ConditionalOnMissingBean(UserDetailsService.class) | ||||
| 	InMemoryUserDetailsManager imudm() { | ||||
| 		return new InMemoryUserDetailsManager(User.withUsername("user").password("{noop}password").roles("USER").build()); | ||||
| 	} | ||||
|  | ||||
| 	@Bean | ||||
| 	@ConditionalOnMissingBean(AuthenticationEventPublisher.class) | ||||
| 	DefaultAuthenticationEventPublisher daep(ApplicationEventPublisher delegate) { | ||||
| 		return new DefaultAuthenticationEventPublisher(delegate); | ||||
| 	} | ||||
| } | ||||
| @@ -9,17 +9,5 @@ spring.datasource.password = ${db.password} | ||||
|  | ||||
| server.servlet.context-path = ${my.context-path:/BiCO} | ||||
|  | ||||
| # security | ||||
| spring.security.oauth2.client.registration.keycloak.client-id = ${keycloak.client-id} | ||||
| spring.security.oauth2.client.registration.keycloak.scope = openid | ||||
| spring.security.oauth2.client.registration.keycloak.authorization-grant-type = authorization_code | ||||
| spring.security.oauth2.client.registration.keycloak.redirect-uri = ${keycloak.redirect-uri} | ||||
| spring.security.oauth2.client.provider.keycloak.issuer-uri = ${keycloak.issuer-uri} | ||||
| spring.security.oauth2.client.provider.keycloak.authorization-uri = ${keycloak.openid-url}/auth | ||||
| spring.security.oauth2.client.provider.keycloak.token-uri = ${keycloak.openid-url}/token | ||||
| spring.security.oauth2.client.provider.keycloak.user-info-uri = ${keycloak.openid-url}/userinfo | ||||
| spring.security.oauth2.client.provider.keycloak.jwk-set-uri = ${keycloak.openid-url}/certs | ||||
| spring.security.oauth2.client.provider.keycloak.user-name-attribute = preferred_username | ||||
|  | ||||
| # for development only | ||||
| server.port = 8081 | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| toggleDarkMode = function() { | ||||
| 	var oldValue = $("html").attr("data-bs-theme"); | ||||
| 	var newValue = oldValue == "dark" ? "light" : "dark"; | ||||
| 	var updateUrl = /*[[@{/updateTheme}]]*/ 'updateTheme'; | ||||
| 	var updateUrl = /*[[@{/updateTheme}]]*/ '/BiCO/updateTheme'; | ||||
| 	updateUrl = updateUrl + "/" + newValue; | ||||
| 	$("html").attr("data-bs-theme", newValue); | ||||
| 	$.ajax({ | ||||
|   | ||||
| @@ -28,11 +28,14 @@ | ||||
| 			<ul layout:fragment="header"></ul> | ||||
| 			<ul class="nav navbar-nav ms-auto"> | ||||
| 				<li class="nav-item"> | ||||
| 				  <a href="https://gitlab.com/jottyfan/bico/-/issues" class="btn btn-outline-secondary" target="_blank" th:text="${'v' + @manifestBean.getVersion()}"></a> | ||||
| 				  <a href="https://git.jottyfan.de/church/BiCO" class="btn btn-outline-secondary" target="_blank" th:text="${'v' + @manifestBean.getVersion()}"></a> | ||||
| 				</li> | ||||
| 				<li class="nav-item"> | ||||
| 					<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> | ||||
| 				</li> | ||||
| 			</ul> | ||||
| 		</div> | ||||
| 	</nav> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user