Skip to content

Audit-47 : Implement the Security Audit Logging#44

Draft
sudhanshu-raj wants to merge 9 commits into
openmrs:mainfrom
sudhanshu-raj:AUDIT-47
Draft

Audit-47 : Implement the Security Audit Logging#44
sudhanshu-raj wants to merge 9 commits into
openmrs:mainfrom
sudhanshu-raj:AUDIT-47

Conversation

@sudhanshu-raj
Copy link
Copy Markdown
Contributor

Description of what I changed

Implemented the Security Audit Logging where we are capturing the events like :

    LOGIN_SUCCESS,
    LOGIN_FAILURE,
    ACCOUNT_LOCKED,
    LOGOUT,
    SESSION_TIMEOUT,
    PASSWORD_CHANGED,
    PASSWORD_RESET_REQUEST,
    PASSWORD_RESET;

Using Application event listeners and AOP for capturing events from the core module. I have added application event publishers on OpenMRS core module side and listeners on audit module for capturing login success/failure, account locked and logout and AOP for password changed, password reset request and password reset . HttpSessionListener for capturing session events. Storing the metadata using per request filter in a separate thread local and session holder for storing and managing the in-application flow events.

And I'm using OpenMRS core 2.7.9-SNAPSHOT for the base, bcz of compatability.
Core PR : openmrs/openmrs-core#6094

Issue I worked on

see https://openmrs.atlassian.net/browse/AUDIT-

Checklist: I completed these to help reviewers :)

  • My IDE is configured to follow the code style of this project.

    No? Unsure? -> configure your IDE, format the code and add the changes with git add . && git commit --amend

  • I have added tests to cover my changes. (If you refactored
    existing code that was well tested you do not have to add tests)

    No? -> write tests and add them to this commit git add . && git commit --amend

  • I ran mvn clean package right before creating this pull request and
    added all formatting changes to my commit.

    No? -> execute above command

  • All new and existing tests passed.

    No? -> figure out why and add the fix to your commit. It is your responsibility to make sure your code works.

  • My pull request is based on the latest changes of the master branch.

    No? Unsure? -> execute command git pull --rebase upstream master

# Conflicts:
#	api/src/main/java/org/openmrs/module/auditlogweb/api/AuditService.java
#	api/src/main/java/org/openmrs/module/auditlogweb/api/dao/AuditDao.java
#	api/src/main/java/org/openmrs/module/auditlogweb/api/impl/AuditServiceImpl.java
This check is performed at the end because we first need to know whether
#changePassword belongs to a password reset or a normal password change,
so the correct event can be stored in the database.
*/
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added raw comments for logic understanding , can remove it later.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move this aop stuff under api folder and and rename advice to aop

@sudhanshu-raj
Copy link
Copy Markdown
Contributor Author

I removed the custom logout event publisher with with built in user session listener but for login attempt event there is extra event we are capturing which is "ACCOUNT_LOCKED" and that's why we can't use existing listener bcz it not capture this event.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants