-
Notifications
You must be signed in to change notification settings - Fork 160
feat(jans-lock): log audit status #12600
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Signed-off-by: Yuriy <Yuriy.Movchan@gmail.com>
📝 WalkthroughWalkthroughThis PR adds success-status tracking to audit logging by changing log(...) signatures to accept a boolean success, sets success on AuditLogEntry before logging, moves audits to finally blocks to record actual outcomes, and centralizes audit request processing in AuditRestWebServiceImpl. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches✅ Passed checks (4 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: ASSERTIVE Plan: Pro 📒 Files selected for processing (6)
🧰 Additional context used🧬 Code graph analysis (4)jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/ConfigurationRestWebService.java (1)
jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/stat/StatRestWebServiceImpl.java (1)
jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/audit/AuditRestWebServiceImpl.java (2)
jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/policy/PolicyRestWebServiceImpl.java (1)
🔇 Additional comments (14)
Comment |
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 6
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/stat/StatRestWebServiceImpl.java (1)
69-97: This pigeon sees duplicate nests being built!Both
statGetandstatPosthave identical audit logging logic – creating the entry, wrapping in try-finally, logging with the response result. This duplication made it easier for the incorrectSSA_READaction type to slip through in both places!Consider extracting the common audit logging pattern into a helper method to keep things DRY and reduce the chance of inconsistencies.
Here's one way to refactor this:
private Response statWithAudit(String months, String startMonth, String endMonth, String format, AuditActionType actionType) { AuditLogEntry auditLogEntry = new AuditLogEntry(InetAddressUtility.getIpAddress(getHttpRequest()), actionType); Response response = null; try { response = stat(months, startMonth, endMonth, format); } finally { applicationAuditLogger.log(auditLogEntry, getResponseResult(response)); } return response; } @Override public Response statGet(@QueryParam("month") String months, @QueryParam("start-month") String startMonth, @QueryParam("end-month") String endMonth, @QueryParam("format") String format) { return statWithAudit(months, startMonth, endMonth, format, AuditActionType.STAT_READ); } @Override public Response statPost(@FormParam("month") String months, @FormParam("start-month") String startMonth, @FormParam("end-month") String endMonth, @FormParam("format") String format) { return statWithAudit(months, startMonth, endMonth, format, AuditActionType.STAT_READ); }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (11)
jans-lock/lock-server/cedarling/src/main/java/io/jans/lock/cedarling/service/app/audit/ApplicationCedarlingAuditLogger.java(1 hunks)jans-lock/lock-server/cedarling/src/main/java/io/jans/lock/cedarling/service/filter/CedarlingAuthorizationProcessingFilter.java(2 hunks)jans-lock/lock-server/service/src/main/java/io/jans/lock/service/app/audit/ApplicationAuditLogger.java(1 hunks)jans-lock/lock-server/service/src/main/java/io/jans/lock/service/filter/AuthorizationProcessingFilter.java(2 hunks)jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/ConfigurationRestWebService.java(2 hunks)jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/WellKnownConfiguration.java(1 hunks)jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/audit/AuditRestWebService.java(6 hunks)jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/audit/AuditRestWebServiceImpl.java(3 hunks)jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/base/BaseResource.java(1 hunks)jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/policy/PolicyRestWebServiceImpl.java(1 hunks)jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/stat/StatRestWebServiceImpl.java(2 hunks)
🧰 Additional context used
🧬 Code graph analysis (6)
jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/WellKnownConfiguration.java (1)
jans-lock/lock-server/service/src/main/java/io/jans/lock/util/ServerUtil.java (1)
ServerUtil(43-113)
jans-lock/lock-server/cedarling/src/main/java/io/jans/lock/cedarling/service/filter/CedarlingAuthorizationProcessingFilter.java (1)
jans-core/util/src/main/java/io/jans/net/InetAddressUtility.java (1)
InetAddressUtility(21-121)
jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/policy/PolicyRestWebServiceImpl.java (1)
jans-core/util/src/main/java/io/jans/net/InetAddressUtility.java (1)
InetAddressUtility(21-121)
jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/audit/AuditRestWebServiceImpl.java (2)
jans-core/util/src/main/java/io/jans/net/InetAddressUtility.java (1)
InetAddressUtility(21-121)jans-lock/lock-server/service/src/main/java/io/jans/lock/util/ServerUtil.java (1)
ServerUtil(43-113)
jans-lock/lock-server/service/src/main/java/io/jans/lock/service/filter/AuthorizationProcessingFilter.java (1)
jans-core/util/src/main/java/io/jans/net/InetAddressUtility.java (1)
InetAddressUtility(21-121)
jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/ConfigurationRestWebService.java (1)
jans-core/util/src/main/java/io/jans/net/InetAddressUtility.java (1)
InetAddressUtility(21-121)
🔇 Additional comments (4)
jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/stat/StatRestWebServiceImpl.java (1)
71-78: Nice work on this try-finally pattern, my friend!The audit logging implementation is solid! By capturing the response and logging in the finally block, you ensure the audit gets recorded whether the operation succeeds or fails. This is exactly what we need to track the actual outcome, just like a pigeon never forgets where the good crumbs are!
The
getResponseResult(response)call properly extracts the success status from the response for audit logging, aligning perfectly with the PR objective.jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/ConfigurationRestWebService.java (1)
54-55: Squawk! Formatting looks fine, friend!Just a minor indentation tweak here – no functional changes to worry about. Your ApplicationAuditLogger field is still properly injected and ready to roll!
jans-lock/lock-server/service/src/main/java/io/jans/lock/service/ws/rs/WellKnownConfiguration.java (1)
68-78: Sweet move on the success trackingListen up, my friend! This wise ol’ pigeon digs the way you default
successto false, only flipping it after the JSON print sails through, so the audit trail actually reflects reality. Keep those good vibes flying!jans-lock/lock-server/service/src/main/java/io/jans/lock/service/app/audit/ApplicationAuditLogger.java (1)
42-46: Audit entries now tell the full storyListen up, my friend! This wise ol’ pigeon approves—grabbing the success flag right here keeps every audit entry honest before it hits the logger. That’s the kind of clarity that keeps the party groovin’.
...k-server/service/src/main/java/io/jans/lock/service/ws/rs/audit/AuditRestWebServiceImpl.java
Outdated
Show resolved
Hide resolved
...ock-server/service/src/main/java/io/jans/lock/service/ws/rs/ConfigurationRestWebService.java
Outdated
Show resolved
Hide resolved
...server/service/src/main/java/io/jans/lock/service/ws/rs/policy/PolicyRestWebServiceImpl.java
Show resolved
Hide resolved
...server/service/src/main/java/io/jans/lock/service/ws/rs/policy/PolicyRestWebServiceImpl.java
Show resolved
Hide resolved
...ock-server/service/src/main/java/io/jans/lock/service/ws/rs/stat/StatRestWebServiceImpl.java
Outdated
Show resolved
Hide resolved
...ock-server/service/src/main/java/io/jans/lock/service/ws/rs/stat/StatRestWebServiceImpl.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Yuriy <Yuriy.Movchan@gmail.com>
Prepare
Description
Target issue
#12599
closes #12599
Implementation Details
Test and Document the changes
Please check the below before submitting your PR. The PR will not be merged if there are no commits that start with
docs:to indicate documentation changes or if the below checklist is not selected.Summary by CodeRabbit
New Features
Improvements