Skip to content

Commit 482481d

Browse files
indraniBanIN40068837Indrani Bandyopadhyaysandipkarmakar3
authored
Jwt api implementation (#62)
* jwt implementation * application prop * Formatting and dependency upgrade * corrected coderabbit comments * fixed issues * userId fetch from redis concept * user class modify * user fetch concept modify * Update package.yml --------- Co-authored-by: IN40068837 <[email protected]> Co-authored-by: Indrani Bandyopadhyay <[email protected]> Co-authored-by: sandipkarmakar3 <[email protected]>
1 parent 070eac5 commit 482481d

File tree

18 files changed

+504
-20
lines changed

18 files changed

+504
-20
lines changed

.github/workflows/package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
run: mvn -B package --file pom.xml
3636

3737
- name: Upload WAR file as artifact
38-
uses: actions/upload-artifact@v3
38+
uses: actions/upload-artifact@v4
3939
with:
4040
name: Admin-API
4141
path: target/adminapi-v1.0.war

bin/.gitignore

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
target/
2+
!.mvn/wrapper/maven-wrapper.jar
3+
4+
### STS ###
5+
.apt_generated
6+
.classpath
7+
.factorypath
8+
.project
9+
.settings
10+
.springBeans
11+
12+
### IntelliJ IDEA ###
13+
.idea
14+
*.iws
15+
*.iml
16+
*.ipr
17+
18+
### NetBeans ###
19+
nbproject/private/
20+
build/
21+
nbbuild/
22+
dist/
23+
nbdist/
24+
.nb-gradle/
25+
26+
#Config
27+
config.service.ts
28+
config.json
29+
30+
# Other entries
31+
/Piramal - Shortcut.lnk
32+
.tern-project
33+
mvnw
34+
mvnw.cmd
35+
.mvn/
36+
37+
# Properties
38+
src/main/environment/admin_local.properties

pom.xml

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@
6464
</exclusion>
6565
</exclusions>
6666
</dependency>
67-
<dependency>
68-
<groupId>co.elastic.logging</groupId>
69-
<artifactId>logback-ecs-encoder</artifactId>
70-
<version>1.3.2</version>
67+
<dependency>
68+
<groupId>co.elastic.logging</groupId>
69+
<artifactId>logback-ecs-encoder</artifactId>
70+
<version>1.3.2</version>
7171
</dependency>
7272
<dependency>
7373
<groupId>org.springframework.boot</groupId>
@@ -106,8 +106,7 @@
106106
<artifactId>spring-boot-starter-tomcat</artifactId>
107107
<scope>provided</scope>
108108
</dependency>
109-
<!--
110-
https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-client -->
109+
<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-client -->
111110
<dependency>
112111
<groupId>org.glassfish.jersey.core</groupId>
113112
<artifactId>jersey-client</artifactId>
@@ -240,8 +239,7 @@
240239
<artifactId>jackson-datatype-joda</artifactId>
241240
<version>2.17.0</version>
242241
</dependency>
243-
<!--
244-
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
242+
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
245243
<dependency>
246244
<groupId>com.fasterxml.jackson.core</groupId>
247245
<artifactId>jackson-databind</artifactId>
@@ -253,6 +251,26 @@
253251
<artifactId>jackson-core</artifactId>
254252
<version>2.17.0-rc1</version>
255253
</dependency>
254+
<!-- https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt-api -->
255+
<dependency>
256+
<groupId>io.jsonwebtoken</groupId>
257+
<artifactId>jjwt-api</artifactId>
258+
<version>0.12.6</version>
259+
</dependency>
260+
<!-- https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt-impl -->
261+
<dependency>
262+
<groupId>io.jsonwebtoken</groupId>
263+
<artifactId>jjwt-impl</artifactId>
264+
<version>0.12.6</version>
265+
<scope>runtime</scope>
266+
</dependency>
267+
<!-- https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt-jackson -->
268+
<dependency>
269+
<groupId>io.jsonwebtoken</groupId>
270+
<artifactId>jjwt-jackson</artifactId>
271+
<version>0.12.6</version>
272+
<scope>runtime</scope>
273+
</dependency>
256274
<!-- end newly added dependencies -->
257275
</dependencies>
258276

@@ -273,7 +291,7 @@
273291
<artifactId>maven-jar-plugin</artifactId>
274292
<version>3.0.2</version>
275293
</plugin>
276-
294+
277295
<plugin>
278296
<groupId>pl.project13.maven</groupId>
279297
<artifactId>git-commit-id-plugin</artifactId>
@@ -364,8 +382,7 @@
364382
${target-properties} and
365383
${source-properties}
366384
</echo>
367-
<concat destfile="${target-properties}"
368-
append="yes"
385+
<concat destfile="${target-properties}" append="yes"
369386
force="yes">
370387
<fileset file="${source-properties}">
371388
</fileset>
@@ -416,6 +433,7 @@
416433
</execution>
417434
</executions>
418435
</plugin>
436+
419437
<plugin>
420438
<groupId>org.apache.maven.plugins</groupId>
421439
<artifactId>maven-checkstyle-plugin</artifactId>
@@ -444,6 +462,7 @@
444462
</execution>
445463
</executions>
446464
</plugin>
465+
447466
</plugins>
448467
</build>
449468
<reporting>

src/main/environment/admin_ci.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ [email protected]_BASE_URL@
1616
### Redis IP
1717
spring.redis.host=localhost
1818
spring.main.allow-bean-definition-overriding=true
19+
jwt.secret=@env.JWT_SECRET_KEY@
1920

2021
#ELK logging file name
21-
logging.file.name=@env.ADMIN_API_LOGGING_FILE_NAME@
22+
logging.file.name=@env.ADMIN_API_LOGGING_FILE_NAME@

src/main/environment/admin_dev.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ videoConsultation-base-url=https://psmri.swymed.com:92744
1616
### Redis IP
1717
spring.redis.host=localhost
1818
spring.main.allow-bean-definition-overriding=true
19+
jwt.secret=
1920

src/main/environment/admin_example.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ videoConsultation-base-url=https://psmri.swymed.com:9274
1818
### Redis IP
1919
spring.redis.host=localhost
2020
spring.main.allow-bean-definition-overriding=true
21+
jwt.secret=
2122

src/main/environment/admin_test.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ videoConsultation-base-url=https://psmri.swymed.com:9274
1515
### Redis IP
1616
spring.redis.host=localhost
1717
spring.main.allow-bean-definition-overriding=true
18+
jwt.secret=
1819

src/main/environment/admin_uat.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ videoConsultation-base-url=https://psmri.swymed.com:9274
1515
### Redis IP
1616
spring.redis.host=localhost
1717
spring.main.allow-bean-definition-overriding=true
18+
jwt.secret=
1819

src/main/java/com/iemr/admin/RoleMasterApplication.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,12 @@
2626
import org.springframework.boot.builder.SpringApplicationBuilder;
2727
import org.springframework.cache.annotation.EnableCaching;
2828
import org.springframework.context.annotation.Bean;
29+
import org.springframework.data.redis.connection.RedisConnectionFactory;
30+
import org.springframework.data.redis.core.RedisTemplate;
31+
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
32+
import org.springframework.data.redis.serializer.StringRedisSerializer;
2933

34+
import com.iemr.admin.data.user.M_User;
3035
import com.iemr.admin.utils.IEMRApplBeans;
3136
import com.iemr.admin.utils.config.ConfigProperties;
3237

@@ -51,4 +56,19 @@ public IEMRApplBeans instantiateBeans() {
5156
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
5257
return builder.sources(new Class[] { RoleMasterApplication.class });
5358
}
59+
60+
@Bean
61+
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
62+
RedisTemplate<String, Object> template = new RedisTemplate<>();
63+
template.setConnectionFactory(factory);
64+
65+
// Use StringRedisSerializer for keys (userId)
66+
template.setKeySerializer(new StringRedisSerializer());
67+
68+
// Use Jackson2JsonRedisSerializer for values (Users objects)
69+
Jackson2JsonRedisSerializer<M_User> serializer = new Jackson2JsonRedisSerializer<>(M_User.class);
70+
template.setValueSerializer(serializer);
71+
72+
return template;
73+
}
5474
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.iemr.admin.config;
2+
3+
import org.springframework.cache.annotation.EnableCaching;
4+
import org.springframework.context.annotation.Bean;
5+
import org.springframework.context.annotation.Configuration;
6+
import org.springframework.data.redis.connection.RedisConnectionFactory;
7+
import org.springframework.data.redis.core.RedisTemplate;
8+
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
9+
import org.springframework.data.redis.serializer.StringRedisSerializer;
10+
import org.springframework.session.data.redis.config.ConfigureRedisAction;
11+
12+
import com.iemr.admin.data.user.M_User;
13+
14+
15+
@Configuration
16+
@EnableCaching
17+
public class RedisConfig {
18+
19+
@Bean
20+
public ConfigureRedisAction configureRedisAction() {
21+
return ConfigureRedisAction.NO_OP;
22+
}
23+
24+
@Bean
25+
public RedisTemplate<String, M_User> redisTemplate(RedisConnectionFactory factory) {
26+
RedisTemplate<String, M_User> template = new RedisTemplate<>();
27+
template.setConnectionFactory(factory);
28+
29+
// Use StringRedisSerializer for keys (userId)
30+
template.setKeySerializer(new StringRedisSerializer());
31+
32+
// Use Jackson2JsonRedisSerializer for values (Users objects)
33+
Jackson2JsonRedisSerializer<M_User> serializer = new Jackson2JsonRedisSerializer<>(M_User.class);
34+
template.setValueSerializer(serializer);
35+
36+
return template;
37+
}
38+
39+
}
40+

0 commit comments

Comments
 (0)