configuration and swagger

REL-BRANCH-ClubhelperModel-0.0.1
kre6513 5 years ago
parent 4549b88af1
commit f667b36d35
  1. 24
      pom.xml
  2. 53
      src/main/java/de/kreth/clubhelper/model/config/KeycloakSecurityConfiguration.java
  3. 23
      src/main/java/de/kreth/clubhelper/model/config/SwaggerSpringfoxConfig.java

@ -20,7 +20,8 @@
<properties> <properties>
<java.version>8</java.version> <java.version>8</java.version>
<org.keycloak.version>11.0.1</org.keycloak.version> <org.keycloak.version>11.0.1</org.keycloak.version>
<sonar.projectKey>cb326711c47c07bb48e5c6e4aa702806f23fa772</sonar.projectKey> <sonar.projectKey>cb326711c47c07bb48e5c6e4aa702806f23fa772
</sonar.projectKey>
</properties> </properties>
<dependencies> <dependencies>
@ -55,6 +56,22 @@
<artifactId>keycloak-spring-security-adapter</artifactId> <artifactId>keycloak-spring-security-adapter</artifactId>
</dependency> </dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<!-- <dependency> -->
<!-- <groupId>io.springfox</groupId> -->
<!-- <artifactId>springfox-swagger2</artifactId> -->
<!-- <version>2.9.2</version> -->
<!-- </dependency> -->
<!-- <dependency> -->
<!-- <groupId>io.springfox</groupId> -->
<!-- <artifactId>springfox-swagger-ui</artifactId> -->
<!-- <version>2.9.2</version> -->
<!-- </dependency> -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId> <artifactId>spring-boot-devtools</artifactId>
@ -66,11 +83,6 @@
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope> <scope>runtime</scope>
</dependency> </dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>

@ -6,6 +6,7 @@ import org.keycloak.adapters.springsecurity.KeycloakConfiguration;
import org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationProvider; import org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationProvider;
import org.keycloak.adapters.springsecurity.config.KeycloakWebSecurityConfigurerAdapter; import org.keycloak.adapters.springsecurity.config.KeycloakWebSecurityConfigurerAdapter;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
@ -15,33 +16,43 @@ import org.springframework.security.core.authority.mapping.SimpleAuthorityMapper
import org.springframework.security.core.session.SessionRegistryImpl; import org.springframework.security.core.session.SessionRegistryImpl;
import org.springframework.security.web.authentication.session.RegisterSessionAuthenticationStrategy; import org.springframework.security.web.authentication.session.RegisterSessionAuthenticationStrategy;
import org.springframework.security.web.authentication.session.SessionAuthenticationStrategy; import org.springframework.security.web.authentication.session.SessionAuthenticationStrategy;
import org.springframework.security.web.session.HttpSessionEventPublisher;
@KeycloakConfiguration @KeycloakConfiguration
@EnableWebSecurity @EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true) @EnableGlobalMethodSecurity(prePostEnabled = true)
public class KeycloakSecurityConfiguration extends KeycloakWebSecurityConfigurerAdapter { public class KeycloakSecurityConfiguration extends KeycloakWebSecurityConfigurerAdapter
{
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth)
{
KeycloakAuthenticationProvider keyCloakAuthProvider = keycloakAuthenticationProvider();
keyCloakAuthProvider.setGrantedAuthoritiesMapper(new SimpleAuthorityMapper());
auth.authenticationProvider(keyCloakAuthProvider);
}
@Autowired @Bean
public void configureGlobal(AuthenticationManagerBuilder auth) { public ServletListenerRegistrationBean<HttpSessionEventPublisher> httpSessionEventPublisher()
KeycloakAuthenticationProvider keyCloakAuthProvider = keycloakAuthenticationProvider(); {
keyCloakAuthProvider.setGrantedAuthoritiesMapper(new SimpleAuthorityMapper()); return new ServletListenerRegistrationBean<HttpSessionEventPublisher>(new HttpSessionEventPublisher());
auth.authenticationProvider(keyCloakAuthProvider); }
}
@Bean @Bean
public KeycloakConfigResolver keyCloakConfigResolver() { public KeycloakConfigResolver keyCloakConfigResolver()
return new KeycloakSpringBootConfigResolver(); {
} return new KeycloakSpringBootConfigResolver();
}
@Override @Override
protected SessionAuthenticationStrategy sessionAuthenticationStrategy() { protected SessionAuthenticationStrategy sessionAuthenticationStrategy()
return new RegisterSessionAuthenticationStrategy( {
new SessionRegistryImpl()); return new RegisterSessionAuthenticationStrategy(new SessionRegistryImpl());
} }
@Override @Override
protected void configure(HttpSecurity http) throws Exception { protected void configure(HttpSecurity http) throws Exception
super.configure(http); {
http.authorizeRequests(); super.configure(http);
} http.authorizeRequests();
}
} }

@ -0,0 +1,23 @@
package de.kreth.clubhelper.model.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
@Configuration
public class SwaggerSpringfoxConfig
{
@Bean
public Docket api()
{
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
Loading…
Cancel
Save