From b7e6f2ae0391420986b16a245b83a9a1845c4e17 Mon Sep 17 00:00:00 2001 From: asi-skumar Date: Sun, 12 Jan 2020 22:18:41 +0530 Subject: [PATCH 1/2] Modified spring auth version. --- pom.xml | 3 ++- .../demo/spring/security/AuthorizationServerConfiguration.java | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 08cf259..d206e25 100644 --- a/pom.xml +++ b/pom.xml @@ -68,8 +68,9 @@ org.springframework.security.oauth spring-security-oauth2 - 2.3.3.RELEASE + 2.3.5.RELEASE + org.modelmapper modelmapper diff --git a/src/main/java/sandeep/demo/spring/security/AuthorizationServerConfiguration.java b/src/main/java/sandeep/demo/spring/security/AuthorizationServerConfiguration.java index 7c48ba7..e0b1432 100644 --- a/src/main/java/sandeep/demo/spring/security/AuthorizationServerConfiguration.java +++ b/src/main/java/sandeep/demo/spring/security/AuthorizationServerConfiguration.java @@ -5,7 +5,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.factory.PasswordEncoderFactories; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer; From e8ad5035d38a504486ff64e06c591f278c39e7aa Mon Sep 17 00:00:00 2001 From: skumar3006 Date: Fri, 27 Mar 2020 13:18:38 +0530 Subject: [PATCH 2/2] develop: new update --- data/auth_sandeep.postman_collection.json | 119 ++++++++++++++++++ data/database | Bin 0 -> 11432 bytes pom.xml | 17 ++- .../demo/controller/OwnerController.java | 5 + .../sandeep/demo/manager/OwnerManager.java | 18 +++ .../demo/repository/OwnerRepository.java | 4 +- .../AuthorizationServerConfiguration.java | 6 +- src/main/resources/application.properties | 4 +- src/main/resources/banner/banner.txt | 5 + 9 files changed, 171 insertions(+), 7 deletions(-) create mode 100644 data/auth_sandeep.postman_collection.json create mode 100644 data/database create mode 100644 src/main/resources/banner/banner.txt diff --git a/data/auth_sandeep.postman_collection.json b/data/auth_sandeep.postman_collection.json new file mode 100644 index 0000000..d4102ac --- /dev/null +++ b/data/auth_sandeep.postman_collection.json @@ -0,0 +1,119 @@ +{ + "info": { + "_postman_id": "2b4658ae-097a-49a8-b1c9-25fbb587278e", + "name": "auth_sandeep", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "get token", + "request": { + "auth": { + "type": "basic", + "basic": [ + { + "key": "password", + "value": "sandeep.kumar", + "type": "string" + }, + { + "key": "username", + "value": "sandeep.kumar@pepcus.com", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/json", + "type": "text" + } + ], + "body": { + "mode": "urlencoded", + "urlencoded": [ + { + "key": "grant_type", + "value": "password", + "type": "text" + }, + { + "key": "username", + "value": "sandeep", + "type": "text" + }, + { + "key": "password", + "value": "sandeep123", + "type": "text" + } + ] + }, + "url": { + "raw": "localhost:8080/oauth/token", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "oauth", + "token" + ] + } + }, + "response": [] + }, + { + "name": "get api", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "auth": { + "type": "noauth" + }, + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/json", + "type": "text" + }, + { + "key": "Authorization", + "value": "bearer 608e6937-04cf-41bc-b335-68e892761864", + "type": "text" + } + ], + "body": { + "mode": "urlencoded", + "urlencoded": [] + }, + "url": { + "raw": "localhost:8080/owners", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "owners" + ] + } + }, + "response": [] + } + ], + "protocolProfileBehavior": {} +} \ No newline at end of file diff --git a/data/database b/data/database new file mode 100644 index 0000000000000000000000000000000000000000..946d10fdf472954e5a8c355059e50a62e7430ad3 GIT binary patch literal 11432 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 literal 0 HcmV?d00001 diff --git a/pom.xml b/pom.xml index d206e25..600aca2 100644 --- a/pom.xml +++ b/pom.xml @@ -1,4 +1,5 @@ - 4.0.0 @@ -77,5 +78,19 @@ 2.3.5 + + + + org.apache.maven.plugins + maven-site-plugin + 3.7.1 + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 3.0.0 + + + diff --git a/src/main/java/sandeep/demo/controller/OwnerController.java b/src/main/java/sandeep/demo/controller/OwnerController.java index b880366..b7cfb9d 100644 --- a/src/main/java/sandeep/demo/controller/OwnerController.java +++ b/src/main/java/sandeep/demo/controller/OwnerController.java @@ -53,5 +53,10 @@ public HttpStatus deleteById(@PathVariable Integer ownerId) { return HttpStatus.ACCEPTED; } + @GetMapping(value = "/name/{firstName}") + public List byExample(@PathVariable String firstName) { + List owners = ownerManager.getByExample(firstName); + return owners; + } } diff --git a/src/main/java/sandeep/demo/manager/OwnerManager.java b/src/main/java/sandeep/demo/manager/OwnerManager.java index a427f8c..74a6855 100644 --- a/src/main/java/sandeep/demo/manager/OwnerManager.java +++ b/src/main/java/sandeep/demo/manager/OwnerManager.java @@ -5,9 +5,11 @@ import java.util.Optional; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Example; import org.springframework.stereotype.Component; import sandeep.demo.entity.Owner; +import sandeep.demo.entity.data.res.Person; import sandeep.demo.model.ModelEntityMapper; import sandeep.demo.model.OwnerBO; import sandeep.demo.repository.OwnerRepository; @@ -45,5 +47,21 @@ public OwnerBO getById(Integer ownerId) { public void deleteById(Integer ownerId) { ownerRepository.deleteById(ownerId); } + + public List getByExample(String name){ + + + Owner owner = new Owner(); + owner.setFirstName(name); + Example example = Example.of(owner); + List results = ownerRepository.findAll(example); + results.forEach(action-> { + System.out.println("action "+action.getId()); + }); + List list = new ArrayList<>(); + results.forEach(o -> list.add(ModelEntityMapper.convertToBO(o))); + return list; + + } } diff --git a/src/main/java/sandeep/demo/repository/OwnerRepository.java b/src/main/java/sandeep/demo/repository/OwnerRepository.java index 953805f..a985604 100644 --- a/src/main/java/sandeep/demo/repository/OwnerRepository.java +++ b/src/main/java/sandeep/demo/repository/OwnerRepository.java @@ -1,10 +1,10 @@ package sandeep.demo.repository; +import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.repository.CrudRepository; import sandeep.demo.entity.Owner; -public interface OwnerRepository extends CrudRepository, JpaSpecificationExecutor{ +public interface OwnerRepository extends JpaRepository, JpaSpecificationExecutor{ } diff --git a/src/main/java/sandeep/demo/spring/security/AuthorizationServerConfiguration.java b/src/main/java/sandeep/demo/spring/security/AuthorizationServerConfiguration.java index e0b1432..544f15e 100644 --- a/src/main/java/sandeep/demo/spring/security/AuthorizationServerConfiguration.java +++ b/src/main/java/sandeep/demo/spring/security/AuthorizationServerConfiguration.java @@ -40,10 +40,10 @@ public class AuthorizationServerConfiguration extends AuthorizationServerConfigu @Override public void configure(ClientDetailsServiceConfigurer clients) throws Exception { - clients.inMemory().withClient("sandeep") + clients.inMemory().withClient("sandeep.kumar@pepcus.com") .authorizedGrantTypes("password", "authorization_code", "refresh_token", "implicit") - .authorities("ROLE_CLIENT", "ROLE_TRUSTED_CLIENT").scopes("read", "write", "trust").secret("{noop}secret") - .accessTokenValiditySeconds(120).// Access token is only valid for 2 minutes. + .authorities("ROLE_CLIENT", "ROLE_TRUSTED_CLIENT").scopes("read", "write", "trust").secret("{noop}sandeep.kumar") + .accessTokenValiditySeconds(3600).// Access token is only valid for 60 minutes. refreshTokenValiditySeconds(600);// Refresh token is only valid for 10 minutes. } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index f1806a6..22e9155 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -3,9 +3,11 @@ spring.datasource.url=jdbc:postgresql://localhost:5432/study spring.datasource.username=postgres spring.datasource.password=postgres spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect +#pring.jpa.hibernate.ddl-auto=create pring.jpa.hibernate.ddl-auto=update spring.datasource.driver-class-name=org.postgresql.Driver flyway.baseline-on-migrate=true spring.flyway.baseline-on-migrate = true spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true -spring.data.rest.basePath=/api \ No newline at end of file +spring.data.rest.basePath=/api +spring.banner.location=classpath:/banner/banner.txt \ No newline at end of file diff --git a/src/main/resources/banner/banner.txt b/src/main/resources/banner/banner.txt new file mode 100644 index 0000000..984faad --- /dev/null +++ b/src/main/resources/banner/banner.txt @@ -0,0 +1,5 @@ + / ___| __ _ _ __ __| | ___ ___ _ __ + \___ \ / _` | | '_ \ / _` | / _ \ / _ \ | '_ \ + ___) | | (_| | | | | | | (_| | | __/ | __/ | |_) | + |____/ \__,_| |_| |_| \__,_| \___| \___| | .__/ + |_| \ No newline at end of file