Skip to content

Instantly share code, notes, and snippets.

View mehmetcemyucel's full-sized avatar

Mehmet Cem Yücel mehmetcemyucel

View GitHub Profile
@mehmetcemyucel
mehmetcemyucel / Main.java
Created March 27, 2021 09:51
spring-native-main
public class Main {
public static void main(String[] args) {
Pojo pojo = new SimplePojo();
// this is a direct method call on the 'pojo' reference
pojo.foo();
}
}
@mehmetcemyucel
mehmetcemyucel / SimplePojo.java
Created March 27, 2021 09:51
spring-native-vanilla-object
public class SimplePojo implements Pojo {
public void foo() {
// this next method invocation is a direct call on the 'this' reference
this.bar();
}
public void bar() {
// some logic...
}
package com.cem.springnativeexample;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(proxyBeanMethods = false)
public class SpringNativeExampleApplication {
public static void main(String[] args) {
SpringApplication.run(SpringNativeExampleApplication.class, args);
@mehmetcemyucel
mehmetcemyucel / pom.xml
Last active April 4, 2021 08:52
spring-native-aot
<plugin>
<groupId>org.springframework.experimental</groupId>
<artifactId>spring-aot-maven-plugin</artifactId>
<version>${spring-native.version}</version>
<executions>
<execution>
<id>test-generate</id>
<goals>
<goal>test-generate</goal>
</goals>
@mehmetcemyucel
mehmetcemyucel / pom.xml
Last active April 4, 2021 08:50
spring-native-image
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<builder>paketobuildpacks/builder:tiny</builder>
<env>
<BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE>
</env>
</image>
@mehmetcemyucel
mehmetcemyucel / pom.xml
Last active April 4, 2021 08:50
spring-native-pom-full
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
@mehmetcemyucel
mehmetcemyucel / FeignConfiguration.java
Created May 25, 2020 15:37
keycloak-feign-resttemplate
package com.cem.oauth2.configuration.feign;
import com.cem.oauth2.configuration.AuthProperties;
import feign.RequestInterceptor;
import org.keycloak.OAuth2Constants;
import org.springframework.cloud.security.oauth2.client.feign.OAuth2FeignRequestInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.oauth2.client.DefaultOAuth2ClientContext;
import org.springframework.security.oauth2.client.resource.OAuth2ProtectedResourceDetails;
@mehmetcemyucel
mehmetcemyucel / RestTemplateConfiguration.java
Created May 25, 2020 15:36
keycloak-feign-resttemplate
package com.cem.oauth2.configuration.resttemplate;
import com.cem.oauth2.configuration.AuthProperties;
import org.keycloak.OAuth2Constants;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.oauth2.client.OAuth2RestTemplate;
import org.springframework.security.oauth2.client.token.AccessTokenProvider;
import org.springframework.security.oauth2.client.token.AccessTokenProviderChain;
import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsAccessTokenProvider;
@mehmetcemyucel
mehmetcemyucel / Controller.java
Created May 25, 2020 15:34
keycloak-feign-resttemplate
package com.cem.oauth2.controller;
import com.cem.oauth2.service.FeignServiceClient;
import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@mehmetcemyucel
mehmetcemyucel / KeycloakConfiguration.java
Created May 25, 2020 15:31
keycloak-feign-resttemplate
package com.cem.oauth2.configuration;
import org.keycloak.adapters.KeycloakConfigResolver;
import org.keycloak.adapters.springboot.KeycloakSpringBootConfigResolver;
import org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationProvider;
import org.keycloak.adapters.springsecurity.config.KeycloakWebSecurityConfigurerAdapter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;