Skip to content

Commit e6d8a2c

Browse files
committed
Initial commit
1 parent a2127f6 commit e6d8a2c

18 files changed

+1245
-0
lines changed

.gitignore

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
### Maven template
2+
target/
3+
pom.xml.tag
4+
pom.xml.releaseBackup
5+
pom.xml.versionsBackup
6+
pom.xml.next
7+
release.properties
8+
dependency-reduced-pom.xml
9+
buildNumber.properties
10+
.mvn/timing.properties
11+
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
12+
.mvn/wrapper/maven-wrapper.jar
13+
14+
### JetBrains template
15+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
16+
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
17+
18+
# User-specific stuff
19+
.idea/**/workspace.xml
20+
.idea/**/tasks.xml
21+
.idea/**/usage.statistics.xml
22+
.idea/**/dictionaries
23+
.idea/**/shelf
24+
25+
# Generated files
26+
.idea/**/contentModel.xml
27+
28+
# Sensitive or high-churn files
29+
.idea/**/dataSources/
30+
.idea/**/dataSources.ids
31+
.idea/**/dataSources.local.xml
32+
.idea/**/sqlDataSources.xml
33+
.idea/**/dynamic.xml
34+
.idea/**/uiDesigner.xml
35+
.idea/**/dbnavigator.xml
36+
37+
# Gradle
38+
.idea/**/gradle.xml
39+
.idea/**/libraries
40+
41+
# Gradle and Maven with auto-import
42+
# When using Gradle or Maven with auto-import, you should exclude module files,
43+
# since they will be recreated, and may cause churn. Uncomment if using
44+
# auto-import.
45+
# .idea/artifacts
46+
# .idea/compiler.xml
47+
# .idea/jarRepositories.xml
48+
# .idea/modules.xml
49+
# .idea/*.iml
50+
# .idea/modules
51+
# *.iml
52+
# *.ipr
53+
54+
# CMake
55+
cmake-build-*/
56+
57+
# Mongo Explorer plugin
58+
.idea/**/mongoSettings.xml
59+
60+
# File-based project format
61+
*.iws
62+
63+
# IntelliJ
64+
out/
65+
66+
# mpeltonen/sbt-idea plugin
67+
.idea_modules/
68+
69+
# JIRA plugin
70+
atlassian-ide-plugin.xml
71+
72+
# Cursive Clojure plugin
73+
.idea/replstate.xml
74+
75+
# Crashlytics plugin (for Android Studio and IntelliJ)
76+
com_crashlytics_export_strings.xml
77+
crashlytics.properties
78+
crashlytics-build.properties
79+
fabric.properties
80+
81+
# Editor-based Rest Client
82+
.idea/httpRequests
83+
84+
# Android studio 3.1+ serialized cache file
85+
.idea/caches/build_file_checksums.ser
86+

.idea/.gitignore

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
# spring-authorization-server-mongodb
22
An implementation of RegisteredClientService, AuthorizationService and AuthorizationConsentService with spring-data-mongodb
3+
4+
Not yet deployed to Maven repo. Grab what you need.

pom.xml

+234
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,234 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<!--
3+
~ Copyright (c) trippay.io 2021-2021.
4+
-->
5+
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
6+
<modelVersion>4.0.0</modelVersion>
7+
<groupId>org.bearchoke</groupId>
8+
<artifactId>spring-authorization-server-mongodb</artifactId>
9+
<version>0.0.1</version>
10+
<packaging>pom</packaging>
11+
<name>spring-authorization-server-mongodb</name>
12+
<description>An implementation of RegisteredClientService, AuthorizationService and AuthorizationConsentService with spring-data-mongodb</description>
13+
<inceptionYear>2022</inceptionYear>
14+
15+
<organization>
16+
<name>Bearchoke</name>
17+
<url>https://www.bearchoke.org</url>
18+
</organization>
19+
20+
<developers>
21+
<developer>
22+
<id>1</id>
23+
<name>Bjorn Harvold</name>
24+
<email>[email protected]</email>
25+
<url>https://www.bearchoke.org</url>
26+
<organization>Bearchoke</organization>
27+
<roles>
28+
<role>Developer</role>
29+
</roles>
30+
</developer>
31+
</developers>
32+
<scm>
33+
<connection>scm:git:ssh://github.com:bjornharvold/spring-authorization-server-mongodb.git</connection>
34+
<developerConnection>scm:git:ssh://github.com:bjornharvold/spring-authorization-server-mongodb.git</developerConnection>
35+
<url>https://github.com/bjornharvold/spring-authorization-server-mongodb</url>
36+
<tag>HEAD</tag>
37+
</scm>
38+
39+
<properties>
40+
<buildnumber.maven.plugin.version>1.4</buildnumber.maven.plugin.version>
41+
<gitflow.maven.plugin>1.16.0</gitflow.maven.plugin>
42+
<java.version>17</java.version>
43+
<lombok.version>1.18.22</lombok.version>
44+
<maven.compiler.plugin.version>3.8.1</maven.compiler.plugin.version>
45+
<maven.dependency.plugin.version>3.2.0</maven.dependency.plugin.version>
46+
<maven.deploy.plugin.version>3.0.0-M1</maven.deploy.plugin.version>
47+
<maven.javadoc.plugin.version>3.3.1</maven.javadoc.plugin.version>
48+
<maven.release.plugin.version>3.0.0-M4</maven.release.plugin.version>
49+
<maven.resources.plugin.version>3.2.0</maven.resources.plugin.version>
50+
<maven.scm.plugin.version>1.12.0</maven.scm.plugin.version>
51+
<maven.source.plugin.version>3.0.1</maven.source.plugin.version>
52+
<maven.surefire.plugin.version>3.0.0-M5</maven.surefire.plugin.version>
53+
<spring.data.mongodb.version>3.3.0</spring.data.mongodb.version>
54+
<spring.security.oauth2.authorization.server.version>0.2.1</spring.security.oauth2.authorization.server.version>
55+
<versions.maven.plugin>2.8.1</versions.maven.plugin>
56+
</properties>
57+
58+
<!-- Common dependencies -->
59+
<dependencies>
60+
<dependency>
61+
<groupId>org.projectlombok</groupId>
62+
<artifactId>lombok</artifactId>
63+
<version>${lombok.version}</version>
64+
</dependency>
65+
66+
<dependency>
67+
<groupId>org.springframework.data</groupId>
68+
<artifactId>spring-data-mongodb</artifactId>
69+
<version>${spring.data.mongodb.version}</version>
70+
<scope>compile</scope>
71+
</dependency>
72+
73+
<!-- Spring Oauth2 Auth server -->
74+
<dependency>
75+
<groupId>org.springframework.security</groupId>
76+
<artifactId>spring-security-oauth2-authorization-server</artifactId>
77+
<version>${spring.security.oauth2.authorization.server.version}</version>
78+
</dependency>
79+
</dependencies>
80+
81+
<build>
82+
<defaultGoal>compile</defaultGoal>
83+
84+
<plugins>
85+
<plugin>
86+
<groupId>org.apache.maven.plugins</groupId>
87+
<artifactId>maven-scm-plugin</artifactId>
88+
<version>${maven.scm.plugin.version}</version>
89+
<configuration>
90+
<connectionType>developerConnection</connectionType>
91+
</configuration>
92+
</plugin>
93+
<plugin>
94+
<groupId>org.apache.maven.plugins</groupId>
95+
<artifactId>maven-deploy-plugin</artifactId>
96+
<version>${maven.deploy.plugin.version}</version>
97+
</plugin>
98+
99+
<plugin>
100+
<groupId>org.apache.maven.plugins</groupId>
101+
<artifactId>maven-release-plugin</artifactId>
102+
<version>${maven.release.plugin.version}</version>
103+
<configuration>
104+
<autoVersionSubmodules>true</autoVersionSubmodules>
105+
<useReleaseProfile>true</useReleaseProfile>
106+
<releaseProfiles>release</releaseProfiles>
107+
<goals>deploy</goals>
108+
<connectionUrl>${project.scm.developerConnection}</connectionUrl>
109+
</configuration>
110+
</plugin>
111+
<plugin>
112+
<groupId>com.amashchenko.maven.plugin</groupId>
113+
<artifactId>gitflow-maven-plugin</artifactId>
114+
<version>${gitflow.maven.plugin}</version>
115+
</plugin>
116+
117+
<plugin>
118+
<groupId>org.codehaus.mojo</groupId>
119+
<artifactId>versions-maven-plugin</artifactId>
120+
<version>${versions.maven.plugin}</version>
121+
</plugin>
122+
123+
<plugin>
124+
<groupId>org.codehaus.mojo</groupId>
125+
<artifactId>buildnumber-maven-plugin</artifactId>
126+
<version>${buildnumber.maven.plugin.version}</version>
127+
<configuration>
128+
<shortRevisionLength>7</shortRevisionLength>
129+
<getRevisionOnlyOnce>true</getRevisionOnlyOnce>
130+
<doCheck>false</doCheck>
131+
<doUpdate>false</doUpdate>
132+
<format>{0,date,yyyyMMdd-HHmmss}-{1}</format>
133+
<items>
134+
<item>timestamp</item>
135+
<item>scmVersion</item>
136+
</items>
137+
</configuration>
138+
<executions>
139+
<execution>
140+
<phase>validate</phase>
141+
<goals>
142+
<goal>create</goal>
143+
</goals>
144+
</execution>
145+
</executions>
146+
</plugin>
147+
<plugin>
148+
<groupId>org.apache.maven.plugins</groupId>
149+
<artifactId>maven-compiler-plugin</artifactId>
150+
<version>${maven.compiler.plugin.version}</version>
151+
<configuration>
152+
<source>${java.version}</source>
153+
<target>${java.version}</target>
154+
<encoding>UTF-8</encoding>
155+
<fork>true</fork>
156+
</configuration>
157+
</plugin>
158+
159+
<plugin>
160+
<groupId>org.apache.maven.plugins</groupId>
161+
<artifactId>maven-javadoc-plugin</artifactId>
162+
<version>${maven.javadoc.plugin.version}</version>
163+
<configuration>
164+
<source>${java.version}</source>
165+
<failOnError>false</failOnError>
166+
<failOnWarnings>false</failOnWarnings>
167+
</configuration>
168+
<extensions>true</extensions>
169+
<executions>
170+
<execution>
171+
<id>generate-javadoc-json</id>
172+
<phase>compile</phase>
173+
<goals>
174+
<goal>javadoc-no-fork</goal>
175+
</goals>
176+
</execution>
177+
</executions>
178+
</plugin>
179+
180+
<plugin>
181+
<groupId>org.apache.maven.plugins</groupId>
182+
<artifactId>maven-surefire-plugin</artifactId>
183+
<version>${maven.surefire.plugin.version}</version>
184+
<configuration>
185+
<argLine>-Xmx4096m</argLine>
186+
<argLine>
187+
--add-opens java.base/java.time=ALL-UNNAMED
188+
</argLine>
189+
<includes>
190+
<include>**/*Test.java</include>
191+
<include>**/*Documentation.java</include>
192+
</includes>
193+
</configuration>
194+
</plugin>
195+
196+
<plugin>
197+
<groupId>org.apache.maven.plugins</groupId>
198+
<artifactId>maven-resources-plugin</artifactId>
199+
<version>${maven.resources.plugin.version}</version>
200+
<executions>
201+
<execution>
202+
<id>copy-resources</id>
203+
<phase>prepare-package</phase>
204+
<goals>
205+
<goal>copy-resources</goal>
206+
</goals>
207+
<configuration>
208+
<outputDirectory>${project.build.outputDirectory}/static/docs</outputDirectory>
209+
<resources>
210+
<resource>
211+
<directory>${project.build.directory}/generated-docs</directory>
212+
</resource>
213+
</resources>
214+
</configuration>
215+
</execution>
216+
</executions>
217+
</plugin>
218+
219+
</plugins>
220+
221+
</build>
222+
223+
<repositories>
224+
225+
<!-- Maven repository -->
226+
<repository>
227+
<id>maven</id>
228+
<name>Maven repo</name>
229+
<url>https://repo.maven.apache.org/maven2/</url>
230+
</repository>
231+
232+
</repositories>
233+
234+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.springframework.security.oauth2.server.authorization.mongodb;
2+
3+
import org.springframework.data.mongodb.repository.MongoRepository;
4+
5+
import java.util.Optional;
6+
7+
/**
8+
* Created on: 9/14/21.
9+
*
10+
* @author Bjorn Harvold Responsibility:
11+
*/
12+
public interface AuthorizationConsentRepository extends MongoRepository<MongoDbOAuth2AuthorizationConsent, String> {
13+
/**
14+
* Find by registered client id and principal name optional.
15+
*
16+
* @param registeredClientId the registered client id
17+
* @param principalName the principal name
18+
* @return the optional
19+
*/
20+
Optional<MongoDbOAuth2AuthorizationConsent> findByRegisteredClientIdAndPrincipalName(String registeredClientId, String principalName);
21+
22+
/**
23+
* Delete by registered client id and principal name.
24+
*
25+
* @param registeredClientId the registered client id
26+
* @param principalName the principal name
27+
*/
28+
void deleteByRegisteredClientIdAndPrincipalName(String registeredClientId, String principalName);
29+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.springframework.security.oauth2.server.authorization.mongodb;
2+
3+
import org.springframework.data.mongodb.repository.MongoRepository;
4+
5+
import java.util.Optional;
6+
7+
/**
8+
* Created on: 9/14/21.
9+
*
10+
* @author Bjorn Harvold Responsibility:
11+
*/
12+
public interface AuthorizationRepository extends MongoRepository<MongoDbOAuth2Authorization, String> {
13+
Optional<MongoDbOAuth2Authorization> findByState(String state);
14+
15+
Optional<MongoDbOAuth2Authorization> findByAuthorizationCode(String authorizationCode);
16+
17+
Optional<MongoDbOAuth2Authorization> findByAccessToken(String accessToken);
18+
19+
Optional<MongoDbOAuth2Authorization> findByRefreshToken(String refreshToken);
20+
21+
Optional<MongoDbOAuth2Authorization> findByStateOrAuthorizationCodeOrAccessTokenOrRefreshToken(String token);
22+
}

0 commit comments

Comments
 (0)