-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Feature/java 21 Merge Fence Branch #166
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Gcolon021
force-pushed
the
feature/java-21-Merge-Fence
branch
3 times, most recently
from
June 14, 2024 19:46
0fa2a1f
to
21326d0
Compare
Gcolon021
changed the title
WIP: Feature/java 21 Merge Fence Branch
Feature/java 21 Merge Fence Branch
Jun 14, 2024
### Build - Created `Jenkinsfile.fence`, which is used by Jenkins to build and upload this application to S3. ### AccessRule Merged both `AccessRule` entities. - Added two `AccessRule.TypeNaming` constants: `ALL_CONTAINS_OR_EMPTY` and `ALL_CONTAINS_OR_EMPTY_IGNORE_CASE`. - Migrated `subAccessRule` and `subAccessRuleParent` to a single `subAccessRule` property that uses a `@JoinTable` to represent the same relationship. - Added a new migration script to update existing `AccessRule` tables to use the new `JoinTable`. ### AccessRuleService Merged both `AccessRuleService` classes. - Updated all logic to account for the two new `AccessRule.TypeNaming` constants. - Refactored the AccessRule cache in the FENCE branch to use Spring's `@Cacheable` and `@CacheEvict`. ### AuthorizationService Merged both `AuthorizationService` classes. - Introduced a new property named `strictConnections`, which is assigned a comma-separated list of connection labels. These connections will be evaluated using a more strict authentication flow, requiring the user to have associated access rules and privileges. For non-strict connections, the user only needs associated privileges. - This approach may be revisited later. Standardizing on one approach is advisable. ### FenceAuthenticationService - Removed the existing `FenceAuthenticationService` and replaced it with the version from the Fence-specific branch. - Incorporated the most recent changes to Role, Privilege, AccessRule, and Fence Mapping into the `FenceAuthenticationService`, including the `FenceMappingUtility` class. ### Additional Authentication Services - Added `Okta0AuthAuthenticationService`, `OpenAuthenticationService`, and `StudyAccessService` to the merged branch. These services previously existed only in the Fence branch. ### Controllers - Refactored all service classes migrated from the Fence-specific branch to have associated `Controller` classes. ### Java 21 & Spring - Refactored all classes migrated from the Fence-specific branch to accommodate Java 21, Spring Boot 3, and Spring 6. ### Unit Test - Merged all unit tests from the Fence branch into related test classes or added them to the project. Ensured that no test changes were logically altered, providing confidence when merging and refactoring classes. The goal was to ensure no currently available test cases failed.
Gcolon021
force-pushed
the
feature/java-21-Merge-Fence
branch
from
June 14, 2024 20:15
21326d0
to
332e12c
Compare
The logging level in both the TokenService and AuthorizationService has been changed from info to debug. This change helps to manage the verbosity of logs, ensuring that only crucial information is logged at the info level.
ramari16
reviewed
Jun 20, 2024
...auth-services/src/main/java/edu/harvard/hms/dbmi/avillach/auth/service/impl/RoleService.java
Outdated
Show resolved
Hide resolved
ramari16
reviewed
Jun 20, 2024
...rvices/src/main/java/edu/harvard/hms/dbmi/avillach/auth/service/impl/StudyAccessService.java
Show resolved
Hide resolved
Added three new model classes: BioDataCatalyst, StudyMetaData and IsHarmonizedDeserializer. These classes are used when parsing fence_mapping.json.
Updated the FenceMappingUtility.java and associated test cases to use new model classes: BioDataCatalyst and StudyMetaData. Additionally, roles are now created after the application Context is initialized.
…factoring The code has been modified to include an additional check in FENCEAuthenticationService to ensure that FENCEMapping is not empty before creating access rules. This will prevent unnecessary errors and exception handling.
The persistAll method in RoleService.java has been revised to return a list of Role objects after saving them. This change is also reflected in FENCEAuthenticationService.java where the returned list of new roles is now properly assigned to newRoles.
…o feature/java-21-Merge-Fence
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Build
Jenkinsfile.fence
, which is used by Jenkins to build and upload this application to S3.AccessRule
Merged both
AccessRule
entities.AccessRule.TypeNaming
constants:ALL_CONTAINS_OR_EMPTY
andALL_CONTAINS_OR_EMPTY_IGNORE_CASE
.subAccessRule
andsubAccessRuleParent
to a singlesubAccessRule
property that uses a@JoinTable
to represent the same relationship.AccessRule
tables to use the newJoinTable
.AccessRuleService
Merged both
AccessRuleService
classes.AccessRule.TypeNaming
constants.@Cacheable
and@CacheEvict
.AuthorizationService
Merged both
AuthorizationService
classes.strictConnections
, which is assigned a comma-separated list of connection labels. These connections will be evaluated using a more strict authentication flow, requiring the user to have associated access rules and privileges. For non-strict connections, the user only needs associated privileges.FenceAuthenticationService
FenceAuthenticationService
and replaced it with the version from the Fence-specific branch.FenceAuthenticationService
, including theFenceMappingUtility
class.Additional Authentication Services
Okta0AuthAuthenticationService
,OpenAuthenticationService
, andStudyAccessService
to the merged branch. These services previously existed only in the Fence branch.Controllers
Controller
classes.Java 21 & Spring
Unit Test