Modules overview
There are several custom modules to be installed along with CzechIdM. Modules often have really similar structure consisting of:
- Java source code
- test suites
- Groovy scripts - used primarily as transformations while connecting end-point systems
- notification templates
- Activiti workflow definitions - Workflows are deployed and versioned automatically
- connector specific files (JDBC scripts etc.)
- configuration files and maven profiles
- database migration - Flyway configuration
Also, you can generate a module of your own by modifying any one of multiple areas of interest while developing a module:
- adding configuration properties
- adding / removing event processors - a powerful mechanism in customizing your CzechIdM deployment.
- defining EAV attributes
- initialize application data
- overriding synchronization
Core filters
All core filters have order 0
.
Overriding a filter in a custom module
The application has a mechanism for dynamic registry and composing of filters for searching the data in IdM (identities, roles, tree structure components, etc.). A new filter can be registered for existing REST services in any module. Behavior of filters can be overrriden.
When you add a new filter with order 10
, a default filter is still used, because all core filters have order 0
, and the smallest order wins. That is all we need in most cases. Usually, you don't mean to change default behavior, but you want to be able to configure which one of the filters is used explicitly ⇒ choose one implementation.
Go to the application configuration page (or to application.property file) and set the property value:
idm.sec.core.filter.IdmIdentity.username.impl=exampleUsernameIdentityFilter
10
, the default filter is still used, since all core filters have order 0
(the smallest order wins)