Skip to content

Commit 7edbe2a

Browse files
author
Steve Riesenberg
committed
Polish "How-to: Implement core services with JPA"
Issue gh-545
1 parent 5bd2968 commit 7edbe2a

File tree

14 files changed

+108
-162
lines changed

14 files changed

+108
-162
lines changed

docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/Authorization.java renamed to docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/entity/authorization/Authorization.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,14 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package sample.jpa;
16+
package sample.jpa.entity.authorization;
1717

1818
import java.time.Instant;
1919

2020
import javax.persistence.Column;
2121
import javax.persistence.Entity;
2222
import javax.persistence.Id;
2323

24-
/**
25-
* @author Steve Riesenberg
26-
*/
27-
// tag::class[]
2824
@Entity
2925
public class Authorization {
3026
@Id
@@ -69,8 +65,7 @@ public class Authorization {
6965
@Column(length = 2000)
7066
private String oidcIdTokenClaims;
7167

72-
// getters and setters
73-
// end::class[]
68+
// @fold:on
7469
public String getId() {
7570
return id;
7671
}
@@ -270,6 +265,5 @@ public String getOidcIdTokenClaims() {
270265
public void setOidcIdTokenClaims(String idTokenClaims) {
271266
this.oidcIdTokenClaims = idTokenClaims;
272267
}
273-
// tag::class[]
268+
// @fold:off
274269
}
275-
// end::class[]

docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/AuthorizationConsent.java renamed to docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/entity/authorizationConsent/AuthorizationConsent.java

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package sample.jpa;
16+
package sample.jpa.entity.authorizationConsent;
1717

1818
import java.io.Serializable;
1919
import java.util.Objects;
@@ -23,10 +23,6 @@
2323
import javax.persistence.Id;
2424
import javax.persistence.IdClass;
2525

26-
/**
27-
* @author Steve Riesenberg
28-
*/
29-
// tag::class[]
3026
@Entity
3127
@IdClass(AuthorizationConsent.AuthorizationConsentId.class)
3228
public class AuthorizationConsent {
@@ -37,8 +33,7 @@ public class AuthorizationConsent {
3733
@Column(length = 1000)
3834
private String authorities;
3935

40-
// getters and setters
41-
// end::class[]
36+
// @fold:on
4237
public String getRegisteredClientId() {
4338
return registeredClientId;
4439
}
@@ -62,14 +57,13 @@ public String getAuthorities() {
6257
public void setAuthorities(String authorities) {
6358
this.authorities = authorities;
6459
}
65-
// tag::class[]
60+
// @fold:off
6661

6762
public static class AuthorizationConsentId implements Serializable {
6863
private String registeredClientId;
6964
private String principalName;
7065

71-
// getters and setters
72-
// end::class[]
66+
// @fold:on
7367
public String getRegisteredClientId() {
7468
return registeredClientId;
7569
}
@@ -85,10 +79,8 @@ public String getPrincipalName() {
8579
public void setPrincipalName(String principalName) {
8680
this.principalName = principalName;
8781
}
88-
// tag::class[]
82+
// @fold:off
8983

90-
// equals and hashCode
91-
// end::class[]
9284
@Override
9385
public boolean equals(Object o) {
9486
if (this == o) return true;
@@ -101,7 +93,5 @@ public boolean equals(Object o) {
10193
public int hashCode() {
10294
return Objects.hash(registeredClientId, principalName);
10395
}
104-
// tag::class[]
10596
}
10697
}
107-
// end::class[]

docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/Client.java renamed to docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/entity/client/Client.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,14 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package sample.jpa;
16+
package sample.jpa.entity.client;
1717

1818
import java.time.Instant;
1919

2020
import javax.persistence.Column;
2121
import javax.persistence.Entity;
2222
import javax.persistence.Id;
2323

24-
/**
25-
* @author Steve Riesenberg
26-
*/
27-
// tag::class[]
2824
@Entity
2925
public class Client {
3026
@Id
@@ -47,8 +43,7 @@ public class Client {
4743
@Column(length = 2000)
4844
private String tokenSettings;
4945

50-
// getters and setters
51-
// end::class[]
46+
// @fold:on
5247
public String getId() {
5348
return id;
5449
}
@@ -144,6 +139,5 @@ public String getTokenSettings() {
144139
public void setTokenSettings(String tokenSettings) {
145140
this.tokenSettings = tokenSettings;
146141
}
147-
// tag::class[]
142+
// @fold:off
148143
}
149-
// end::class[]

docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/AuthorizationRepository.java renamed to docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/repository/authorization/AuthorizationRepository.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,17 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package sample.jpa;
16+
package sample.jpa.repository.authorization;
1717

1818
import java.util.Optional;
1919

20+
import sample.jpa.entity.authorization.Authorization;
21+
2022
import org.springframework.data.jpa.repository.JpaRepository;
2123
import org.springframework.data.jpa.repository.Query;
2224
import org.springframework.data.repository.query.Param;
2325
import org.springframework.stereotype.Repository;
2426

25-
/**
26-
* @author Steve Riesenberg
27-
*/
28-
// tag::class[]
2927
@Repository
3028
public interface AuthorizationRepository extends JpaRepository<Authorization, String> {
3129
Optional<Authorization> findByState(String state);
@@ -39,4 +37,3 @@ public interface AuthorizationRepository extends JpaRepository<Authorization, St
3937
)
4038
Optional<Authorization> findByStateOrAuthorizationCodeValueOrAccessTokenValueOrRefreshTokenValue(@Param("token") String token);
4139
}
42-
// end::class[]

docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/AuthorizationConsentRepository.java renamed to docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/repository/authorizationConsent/AuthorizationConsentRepository.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,17 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package sample.jpa;
16+
package sample.jpa.repository.authorizationConsent;
1717

1818
import java.util.Optional;
1919

20+
import sample.jpa.entity.authorizationConsent.AuthorizationConsent;
21+
2022
import org.springframework.data.jpa.repository.JpaRepository;
2123
import org.springframework.stereotype.Repository;
2224

23-
/**
24-
* @author Steve Riesenberg
25-
*/
26-
// tag::class[]
2725
@Repository
2826
public interface AuthorizationConsentRepository extends JpaRepository<AuthorizationConsent, AuthorizationConsent.AuthorizationConsentId> {
2927
Optional<AuthorizationConsent> findByRegisteredClientIdAndPrincipalName(String registeredClientId, String principalName);
3028
void deleteByRegisteredClientIdAndPrincipalName(String registeredClientId, String principalName);
3129
}
32-
// end::class[]

docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/ClientRepository.java renamed to docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/repository/client/ClientRepository.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,16 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package sample.jpa;
16+
package sample.jpa.repository.client;
1717

1818
import java.util.Optional;
1919

20+
import sample.jpa.entity.client.Client;
21+
2022
import org.springframework.data.jpa.repository.JpaRepository;
2123
import org.springframework.stereotype.Repository;
2224

23-
/**
24-
* @author Steve Riesenberg
25-
*/
26-
// tag::class[]
2725
@Repository
2826
public interface ClientRepository extends JpaRepository<Client, String> {
2927
Optional<Client> findByClientId(String clientId);
3028
}
31-
// end::class[]

docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/JpaOAuth2AuthorizationService.java renamed to docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/service/authorization/JpaOAuth2AuthorizationService.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package sample.jpa;
16+
package sample.jpa.service.authorization;
1717

1818
import java.time.Instant;
1919
import java.util.List;
@@ -24,6 +24,8 @@
2424
import com.fasterxml.jackson.core.type.TypeReference;
2525
import com.fasterxml.jackson.databind.Module;
2626
import com.fasterxml.jackson.databind.ObjectMapper;
27+
import sample.jpa.entity.authorization.Authorization;
28+
import sample.jpa.repository.authorization.AuthorizationRepository;
2729

2830
import org.springframework.dao.DataRetrievalFailureException;
2931
import org.springframework.security.jackson2.SecurityJackson2Modules;
@@ -44,10 +46,6 @@
4446
import org.springframework.util.Assert;
4547
import org.springframework.util.StringUtils;
4648

47-
/**
48-
* @author Steve Riesenberg
49-
*/
50-
// tag::class[]
5149
@Component
5250
public class JpaOAuth2AuthorizationService implements OAuth2AuthorizationService {
5351
private final AuthorizationRepository authorizationRepository;
@@ -261,4 +259,3 @@ private static AuthorizationGrantType resolveAuthorizationGrantType(String autho
261259
return new AuthorizationGrantType(authorizationGrantType); // Custom authorization grant type
262260
}
263261
}
264-
// end::class[]

docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/JpaOAuth2AuthorizationConsentService.java renamed to docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/service/authorizationConsent/JpaOAuth2AuthorizationConsentService.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,14 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package sample.jpa;
16+
package sample.jpa.service.authorizationConsent;
1717

1818
import java.util.HashSet;
1919
import java.util.Set;
2020

21+
import sample.jpa.entity.authorizationConsent.AuthorizationConsent;
22+
import sample.jpa.repository.authorizationConsent.AuthorizationConsentRepository;
23+
2124
import org.springframework.dao.DataRetrievalFailureException;
2225
import org.springframework.security.core.GrantedAuthority;
2326
import org.springframework.security.core.authority.SimpleGrantedAuthority;
@@ -29,10 +32,6 @@
2932
import org.springframework.util.Assert;
3033
import org.springframework.util.StringUtils;
3134

32-
/**
33-
* @author Steve Riesenberg
34-
*/
35-
// tag::class[]
3635
@Component
3736
public class JpaOAuth2AuthorizationConsentService implements OAuth2AuthorizationConsentService {
3837
private final AuthorizationConsentRepository authorizationConsentRepository;
@@ -99,4 +98,3 @@ private AuthorizationConsent toEntity(OAuth2AuthorizationConsent authorizationCo
9998
return entity;
10099
}
101100
}
102-
// end::class[]

docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/JpaRegisteredClientRepository.java renamed to docs/src/docs/asciidoc/examples/src/main/java/sample/jpa/service/client/JpaRegisteredClientRepository.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package sample.jpa;
16+
package sample.jpa.service.client;
1717

1818
import java.util.ArrayList;
1919
import java.util.List;
@@ -23,6 +23,8 @@
2323
import com.fasterxml.jackson.core.type.TypeReference;
2424
import com.fasterxml.jackson.databind.Module;
2525
import com.fasterxml.jackson.databind.ObjectMapper;
26+
import sample.jpa.entity.client.Client;
27+
import sample.jpa.repository.client.ClientRepository;
2628

2729
import org.springframework.security.jackson2.SecurityJackson2Modules;
2830
import org.springframework.security.oauth2.core.AuthorizationGrantType;
@@ -36,10 +38,6 @@
3638
import org.springframework.util.Assert;
3739
import org.springframework.util.StringUtils;
3840

39-
/**
40-
* @author Steve Riesenberg
41-
*/
42-
// tag::class[]
4341
@Component
4442
public class JpaRegisteredClientRepository implements RegisteredClientRepository {
4543
private final ClientRepository clientRepository;
@@ -172,4 +170,3 @@ private static ClientAuthenticationMethod resolveClientAuthenticationMethod(Stri
172170
return new ClientAuthenticationMethod(clientAuthenticationMethod); // Custom client authentication method
173171
}
174172
}
175-
// end::class[]

docs/src/docs/asciidoc/examples/src/main/resources/oauth2-authorization-consent-schema.sql

Lines changed: 0 additions & 6 deletions
This file was deleted.

docs/src/docs/asciidoc/examples/src/main/resources/oauth2-authorization-schema.sql

Lines changed: 0 additions & 28 deletions
This file was deleted.

docs/src/docs/asciidoc/examples/src/main/resources/oauth2-registered-client-schema.sql

Lines changed: 0 additions & 15 deletions
This file was deleted.

docs/src/docs/asciidoc/examples/src/test/java/sample/jpa/JpaTests.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
import org.junit.jupiter.api.extension.ExtendWith;
2727
import sample.AuthorizationCodeGrantFlow;
2828
import sample.jose.TestJwks;
29+
import sample.jpa.service.authorization.JpaOAuth2AuthorizationService;
30+
import sample.jpa.service.authorizationConsent.JpaOAuth2AuthorizationConsentService;
31+
import sample.jpa.service.client.JpaRegisteredClientRepository;
2932
import sample.test.SpringTestContext;
3033
import sample.test.SpringTestContextExtension;
3134

0 commit comments

Comments
 (0)