{"action":"created","issue":{"url":"https://api.github.com/repos/flowable/flowable-engine/issues/792","repository_url":"https://api.github.com/repos/flowable/flowable-engine","labels_url":"https://api.github.com/repos/flowable/flowable-engine/issues/792/labels{/name}","comments_url":"https://api.github.com/repos/flowable/flowable-engine/issues/792/comments","events_url":"https://api.github.com/repos/flowable/flowable-engine/issues/792/events","html_url":"https://github.com/flowable/flowable-engine/pull/792","id":296519559,"number":792,"title":"Custom Authentication in IDM","user":{"login":"ghonia","id":32647760,"avatar_url":"https://avatars0.githubusercontent.com/u/32647760?v=4","gravatar_id":"","url":"https://api.github.com/users/ghonia","html_url":"https://github.com/ghonia","followers_url":"https://api.github.com/users/ghonia/followers","following_url":"https://api.github.com/users/ghonia/following{/other_user}","gists_url":"https://api.github.com/users/ghonia/gists{/gist_id}","starred_url":"https://api.github.com/users/ghonia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ghonia/subscriptions","organizations_url":"https://api.github.com/users/ghonia/orgs","repos_url":"https://api.github.com/users/ghonia/repos","events_url":"https://api.github.com/users/ghonia/events{/privacy}","received_events_url":"https://api.github.com/users/ghonia/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-02-12T20:50:49Z","updated_at":"2018-02-13T12:50:18Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/flowable/flowable-engine/pulls/792","html_url":"https://github.com/flowable/flowable-engine/pull/792","diff_url":"https://github.com/flowable/flowable-engine/pull/792.diff","patch_url":"https://github.com/flowable/flowable-engine/pull/792.patch"},"body":"The goal of this Pull Request is to allow users/forkers of flowable to customize the authentication process of the flowable-ui-*-apps. For example, at seal-software, we need our users to login to instances of Flowable apps (modeler/task/admin/rest/idm) using their Seal credentials without integrating with LDAP. To do so, we needed to override two thing in the default Flowable source code.\r\n* IdmIdentityServiceImpl, and\r\n* dbAuthenticationProvider\r\n\r\nTo allow any user to do the same without having to modify Flowable source code, this pull request did the following\r\n\r\nAdded a name to the IdmIdentitiService Bean created in org.flowable.app.conf.FlowableIdmEngineConfiguration called “defaultIdmIdentityService” and used it in the qualifier whenever IdmIdentityService was required in the IDM.\r\n\r\nAdded Autowire for IdmIdentityService with qualifier “customIdmIdentityService” in org.flowable.app.conf.FlowableIdmEngineConfiguration. FlowableIdmEngineConfiguration will return the custom Identity Service if it was provided on the class path. Otherwise, the default flowable Identity Service will be returned. Now anyone can override the default Identity service by adding their implementation on the CP.\r\n\r\nAdd Autowire for an AuthenticationProvider in org.flowable.app.conf.SecurityConfiguration. If not found, the configuration will fall back to the default dbAuthenticationProvider.\r\n\r\nFinally, we added option to disable bootstrapping the IDM by setting property idm.bootstram.enabled=false in flowable-ui-app.properties. If not found, the value defaults to true\r\n\r\nExample of custom authentication Beans provided in WEB-INF/lib of flowable-idm after building flowable-idm OOTB\r\n\r\npackage org.flowable.idm.extension.bean;\r\n@Component(\"customIdmIdentityService\")\r\npublic class SealIdentityServiceImpl extends IdmIdentityServiceImpl {\r\n…\r\n\r\npackage org.flowable.idm.extension.bean;\r\n@Component(\"customAuthenticationProvider\")\r\npublic class SealAuthenticationProvider implements AuthenticationProvider {"},"comment":{"url":"https://api.github.com/repos/flowable/flowable-engine/issues/comments/365257521","html_url":"https://github.com/flowable/flowable-engine/pull/792#issuecomment-365257521","issue_url":"https://api.github.com/repos/flowable/flowable-engine/issues/792","id":365257521,"user":{"login":"tijsrademakers","id":944253,"avatar_url":"https://avatars1.githubusercontent.com/u/944253?v=4","gravatar_id":"","url":"https://api.github.com/users/tijsrademakers","html_url":"https://github.com/tijsrademakers","followers_url":"https://api.github.com/users/tijsrademakers/followers","following_url":"https://api.github.com/users/tijsrademakers/following{/other_user}","gists_url":"https://api.github.com/users/tijsrademakers/gists{/gist_id}","starred_url":"https://api.github.com/users/tijsrademakers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tijsrademakers/subscriptions","organizations_url":"https://api.github.com/users/tijsrademakers/orgs","repos_url":"https://api.github.com/users/tijsrademakers/repos","events_url":"https://api.github.com/users/tijsrademakers/events{/privacy}","received_events_url":"https://api.github.com/users/tijsrademakers/received_events","type":"User","site_admin":false},"created_at":"2018-02-13T12:50:18Z","updated_at":"2018-02-13T12:50:18Z","author_association":"CONTRIBUTOR","body":"Hi,\r\n\r\nThanks for the PR, I think it's good to make the idm logic more pluggable.\r\nAbout the implementation details. When there is a customIdentityService, then it would also be possible to set this as the IdmIdentityService implement on the IdmEngineConfiguration. Then the command executor is automatically set to this IdmIdentityService implementation. Would that work for you as well?"}}
{"actor":{"display_login":"tijsrademakers"}}