Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ public String userAuthenticate(
if (mUser.size() == 1) {
String userIdStr = mUser.get(0).getUserID().toString();
jwtToken = isMobile
? jwtUtil.generateSecureToken(userIdStr)
? jwtUtil.generateSecureToken(m_User.getUserName(),userIdStr)
: jwtUtil.generateToken(m_User.getUserName(), userIdStr);

User user = new User(); // Assuming the Users class exists
Expand All @@ -235,7 +235,7 @@ public String userAuthenticate(
);

if (isMobile) {
refreshToken = jwtUtil.generateSecureRefreshToken(user.getUserID().toString());
refreshToken = jwtUtil.generateSecureRefreshToken(m_User.getUserName(),user.getUserID().toString());
logger.debug("Refresh token generated successfully for user: {}", user.getUserName());
String jti = jwtUtil.getJtiFromToken(refreshToken);
redisTemplate.opsForValue().set(
Expand Down Expand Up @@ -604,7 +604,7 @@ public String superUserAuthenticate(
);

if (isMobile) {
refreshToken = jwtUtil.generateSecureRefreshToken(user.getUserID().toString());
refreshToken = jwtUtil.generateSecureRefreshToken(m_User.getUserName(),user.getUserID().toString());
logger.debug("Refresh token generated successfully for user: {}", user.getUserName());
String jti = jwtUtil.getJtiFromToken(refreshToken);
redisTemplate.opsForValue().set(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -234,10 +234,10 @@ public class BeneficiaryCall {
@Expose
@Column(name = "InsName")
private String instName;

@Transient
@Value("${cti-logger_base_url}")
private String loggerBaseURL;

@Transient
@Expose
private String[] instNames;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,8 @@ public class FormFieldOption {
@Column(name = "sort_order")
private Integer sortOrder;

@Column(name = "owner_module")
private String ownerModule;

// getters/setters
}
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,10 @@ public FormResponseDTO getStructuredFormByFormId(String formId, String lang, Str
Map<String, Object> map = new LinkedHashMap<>();
map.put("id", opt.getId());
map.put("value", opt.getValue());
if(opt.getOwnerModule()!=null && !opt.getOwnerModule().isEmpty()){
map.put("ownerModule",opt.getOwnerModule());

}
if ("hi".equalsIgnoreCase(lang)) map.put("label", opt.getLabelHi());
else if ("as".equalsIgnoreCase(lang)) map.put("label", opt.getLabelAs());
else if("en".equals(lang)) map.put("label", opt.getLabelEn());
Expand Down
12 changes: 6 additions & 6 deletions src/main/java/com/iemr/common/utils/JwtUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,17 +47,17 @@ public String generateToken(String username, String userId) {
}

// Mobile login: token without PII in sub
public String generateSecureToken(String userId) {
return buildSecureToken(userId, "access", ACCESS_EXPIRATION_TIME);
public String generateSecureToken(String username,String userId) {
return buildSecureToken(username, userId, "access", ACCESS_EXPIRATION_TIME);
}

public String generateSecureRefreshToken(String userId) {
return buildSecureToken(userId, "refresh", REFRESH_EXPIRATION_TIME);
public String generateSecureRefreshToken(String userName,String userId) {
return buildSecureToken(userName,userId, "refresh", REFRESH_EXPIRATION_TIME);
}

private String buildSecureToken(String userId, String tokenType, long expiration) {
private String buildSecureToken(String userName ,String userId, String tokenType, long expiration) {
return Jwts.builder()
.subject(userId)
.subject(userName)
.claim("userId", userId)
.claim("token_type", tokenType)
.id(UUID.randomUUID().toString())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
import java.util.Map;
import java.util.Optional;

import com.iemr.common.data.userToken.UserFcmTokenData;
import com.iemr.common.repo.userToken.UserFcmTokenRepo;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
Expand All @@ -32,10 +34,8 @@
import com.google.firebase.messaging.FirebaseMessaging;
import com.google.firebase.messaging.FirebaseMessagingException;
import com.google.firebase.messaging.Message;
import com.iemr.common.data.userToken.UserTokenData;
import com.iemr.common.model.notification.NotificationMessage;
import com.iemr.common.model.notification.UserToken;
import com.iemr.common.repo.userToken.UserTokenRepo;
import com.iemr.common.utils.CookieUtil;
import com.iemr.common.utils.JwtUtil;

Expand All @@ -45,7 +45,7 @@
class FirebaseNotificationServiceTest {

@Mock
private UserTokenRepo userTokenRepo;
private UserFcmTokenRepo userTokenRepo;
@Mock
private CookieUtil cookieUtil;
@Mock
Expand All @@ -56,7 +56,6 @@ class FirebaseNotificationServiceTest {
@BeforeEach
void setUp() {
service = new FirebaseNotificationService();
ReflectionTestUtils.setField(service, "userTokenRepo", userTokenRepo);
ReflectionTestUtils.setField(service, "cookieUtil", cookieUtil);
ReflectionTestUtils.setField(service, "jwtUtil", jwtUtil);
}
Expand Down Expand Up @@ -113,7 +112,7 @@ void deliveryFailureIsReported() throws Exception {
@Test
@DisplayName("an existing device token is updated in place")
void existingTokenIsUpdated() {
UserTokenData existing = new UserTokenData();
UserFcmTokenData existing = new UserFcmTokenData();
existing.setUserId(7);
existing.setToken("old-token");
when(userTokenRepo.findById(7)).thenReturn(Optional.of(existing));
Expand All @@ -124,7 +123,7 @@ void existingTokenIsUpdated() {

assertThat(service.updateToken(userToken)).isEqualTo("Save Successfully");

ArgumentCaptor<UserTokenData> captor = ArgumentCaptor.forClass(UserTokenData.class);
ArgumentCaptor<UserFcmTokenData> captor = ArgumentCaptor.forClass(UserFcmTokenData.class);
verify(userTokenRepo).save(captor.capture());
assertThat(captor.getValue()).isSameAs(existing);
assertThat(captor.getValue().getToken()).isEqualTo("new-token");
Expand All @@ -142,7 +141,7 @@ void newTokenIsCreated() {

assertThat(service.updateToken(userToken)).isEqualTo("Save Successfully");

ArgumentCaptor<UserTokenData> captor = ArgumentCaptor.forClass(UserTokenData.class);
ArgumentCaptor<UserFcmTokenData> captor = ArgumentCaptor.forClass(UserFcmTokenData.class);
verify(userTokenRepo).save(captor.capture());
assertThat(captor.getValue().getUserId()).isEqualTo(8);
assertThat(captor.getValue().getToken()).isEqualTo("fresh-token");
Expand All @@ -154,7 +153,7 @@ void storedTokenIsResolvedFromTheJwtCookie() throws Exception {
MockHttpServletRequest request = new MockHttpServletRequest();
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request));
when(jwtUtil.getUserIdFromToken("jwt-value")).thenReturn("11");
UserTokenData stored = new UserTokenData();
UserFcmTokenData stored = new UserFcmTokenData();
stored.setToken("device-token");
when(userTokenRepo.findById(11)).thenReturn(Optional.of(stored));

Expand Down
4 changes: 2 additions & 2 deletions src/test/java/com/iemr/common/utils/JwtUtilTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ void refreshTokenIsMarked() {
@Test
@DisplayName("a secure token uses the user id as its subject")
void secureTokenSubjectIsTheUserId() {
Claims claims = jwtUtil.getAllClaimsFromToken(jwtUtil.generateSecureToken("42"));
Claims claims = jwtUtil.getAllClaimsFromToken(jwtUtil.generateSecureToken("","42"));

assertThat(claims.getSubject()).isEqualTo("42");
assertThat(claims.get("token_type", String.class)).isEqualTo("access");
Expand All @@ -104,7 +104,7 @@ void secureTokenSubjectIsTheUserId() {
@Test
@DisplayName("a secure refresh token uses the user id as its subject")
void secureRefreshTokenSubjectIsTheUserId() {
Claims claims = jwtUtil.getAllClaimsFromToken(jwtUtil.generateSecureRefreshToken("42"));
Claims claims = jwtUtil.getAllClaimsFromToken(jwtUtil.generateSecureToken("","42"));

assertThat(claims.getSubject()).isEqualTo("42");
assertThat(claims.get("token_type", String.class)).isEqualTo("refresh");
Expand Down
Loading