Compare commits

...
3869 Commits
Author SHA1 Message Date
keycloak-bot e677755bc5 Set version to 2.5.5.Final 2017-03-14 10:31:05 +00:00
Stian Thorgersen 399aa6aeb1 Merge pull request #3946 from pedroigor/authz-fixes-2.5.x
[2.5.x] Authz fixes
2017-03-14 11:28:23 +01:00
Pavel Drozd 0f4b1cd17f KEYCLOAK-4569 SSSDTest rewrited to be usable in different enviroments 2017-03-14 11:12:07 +01:00
Pavel Drozd 1f695f257f KEYCLOAK-4304 Updated Kerberos tests to be able to run them on different environment 2017-03-14 11:11:58 +01:00
mhajas 82d34fc53e KEYCLOAK-3961 2017-03-14 11:11:04 +01:00
mposolda b7fa16e64b KEYCLOAK-4285 Adapter tests for examples fail in Wildfly/EAP6 2017-03-14 11:01:31 +01:00
vramik 6b2ffb031c KEYCLOAK-4262 disable server-config-migration for distribution and add possibility to run it with profile 2017-03-14 10:59:19 +01:00
vramik 7c2e23b18b KEYCLOAK-4262 make AbstractSamlTest class abstract 2017-03-14 10:58:35 +01:00
vramik 0fb8217904 Enable server-config-migration for distribution 2017-03-14 10:57:56 +01:00
mhajas 3c692aa469 KEYCLOAK-4179 2017-03-14 10:57:38 +01:00
mhajas ebc8132dac KEYCLOAK-4181 2017-03-14 10:57:13 +01:00
mhajas e1031b96e5 KEYCLOAK-4261 2017-03-14 10:57:01 +01:00
mhajas 7400a1c321 KEYCLOAK-4160 2017-03-14 10:55:11 +01:00
mhajas f160a2013f KEYCLOAK-4262 Test for rejected consent 2017-03-14 10:54:34 +01:00
mhajas 4d52d085ad KEYCLOAK-4084 Fix ssl adapter tests 2017-03-14 10:53:52 +01:00
mhajas e4ae6f1418 KEYCLOAK-4329 Add test for empty KeyInfo 2017-03-14 10:53:18 +01:00
mhajas 21bbfbdc1d KEYCLOAK-3987 Add test for grant role from token 2017-03-14 10:52:43 +01:00
mhajas 8f600877f5 KEYCLOAK-4346 Validation tests are failing because of ban on server which provides some imports to SAML xsd 2017-03-14 10:52:14 +01:00
mhajas 24adeddf43 KEYCLOAK-4286 Use desired version of JS-adapter 2017-03-14 10:51:16 +01:00
mhajas 954c90370a KEYCLOAK-4020 add test for boolean attribute 2017-03-14 10:50:48 +01:00
vramik 811d1f2e99 resolve 'There is no context available for qualifier' message 2017-03-14 10:49:38 +01:00
vramik 25d2b27846 refactor asserts in ExportImportTest to be more verbose 2017-03-14 10:48:55 +01:00
vramik f0aa0298ec assumeCommunity for AccountPageTest.testLocalizedReferrerLinkContent 2017-03-14 10:48:45 +01:00
vramik 48f017e28c Removed unused import from LDAPBinaryAttributesTest 2017-03-14 10:48:34 +01:00
mhajas 0eeebef83c KEYCLOAK-3841 2017-03-14 10:47:32 +01:00
Pedro Igor c7db4ff650 [KEYCLOAK-4555] - Fixes and improvements to evaluation code 2017-03-13 15:22:02 -03:00
Pedro Igor 47bc81b015 [KEYCLOAK-4549] - Scope Permission Form is not showing saved resource 2017-03-13 15:21:54 -03:00
Stian Thorgersen 94aa04f7b0 Merge pull request #3933 from hmlnarik/KEYCLOAK-4552-2.5
KEYCLOAK-4552
2017-03-13 14:42:58 +01:00
Hynek Mlnarik d0d0ab0051 KEYCLOAK-4552 2017-03-10 13:32:19 +01:00
Stan Silvert 0df5338f2b KEYCLOAK-4514: Update migration scripts according to changes to the
subsystem
2017-03-10 13:18:35 +01:00
keycloak-bot 5cd2a564ae Set version to 2.5.5.Final-SNAPSHOT 2017-02-22 19:34:52 +00:00
keycloak-bot 81b9e99c5d Set version to 2.5.4.Final 2017-02-22 18:42:32 +00:00
Stian Thorgersen a4a6dd5049 KEYCLOAK-4483
Overlay standalone differs from dist standalone
2017-02-22 19:30:19 +01:00
Stian Thorgersen 401b2508a8 KEYCLOAK-4394 Use JBoss logging 2017-02-15 09:06:35 +01:00
Stian Thorgersen 709e7a6c9d Merge pull request #3861 from stianst/2.5.x
KEYCLOAK-4392 Copy component id from representation to model
2017-02-15 08:54:58 +01:00
Stian Thorgersen 1146d8dc5b Merge pull request #3865 from sebastienblanc/2.5.x-springboot-starter
KEYCLOAK-4423 : 2.5.x adding springboot starter
2017-02-15 08:54:15 +01:00
Stian Thorgersen 7e4eb7e87c Merge pull request #3863 from sebastienblanc/correct_version
Set version to 2.5.4.Final-SNAPSHOT
2017-02-14 14:51:16 +01:00
sebastienblanc c93eee1370 set version to 2.5.4.Final-SNAPSHOT 2017-02-14 14:42:20 +01:00
sebastienblanc 7ae154562e KEYCLOAK-4423 : Adding Spring Boot Adapter 2017-02-14 14:42:20 +01:00
sebastienblanc 14fdb38dbe Set version to 2.5.4.Final-SNAPSHOT 2017-02-14 14:14:21 +01:00
sebastienblanc a6c2ae2c52 added all the adapters in BOM 2017-02-14 13:10:56 +01:00
Stian Thorgersen 98c1020d4c KEYCLOAK-4195 Keycloak adapter and SPI bom 2017-02-14 13:10:44 +01:00
Anders Båtstrand 23791a8efd KEYCLOAK-4392 Copy component id from representation to model 2017-02-14 09:43:56 +01:00
Stian Thorgersen 52366aecc8 Merge pull request #3854 from pedroigor/RHSSO-767-2.5.x
[2.5.x][RHSSO-767] - Wrong implementation of Request.getRelativePath causing failures on Tomcat-like adapters
2017-02-13 10:26:37 +01:00
Stian Thorgersen 4c7f40c32c Merge pull request #3842 from mposolda/KEYCLOAK-4385-2.5.x
KEYCLOAK-4385 Added BundleBasedKeycloakConfigResolver
2017-02-13 10:25:42 +01:00
Pedro Igor 1f5a4a6758 [RHSSO-767] - Wrong implementation of Request.getRelativePath causing failures on Tomcat-like adapters 2017-02-09 21:29:01 -02:00
Stian Thorgersen 8cb17ed292 Merge pull request #3848 from stianst/KEYCLOAK-4378-2.5.x
KEYCLOAK-4378 New user attribute is not added after first login from …
2017-02-09 10:02:07 +01:00
Stian Thorgersen 68ca3d4959 Merge pull request #3836 from mposolda/KEYCLOAK-4371-2.5.x
KEYCLOAK-4371 Offline Tokens still useless When SSO Session Max is Re…
2017-02-08 15:42:28 +01:00
Stian Thorgersen 33742dbf62 Merge pull request #3830 from mposolda/2.5.x
KEYCLOAK-4364 Fix OpenLDAP issue with renaming DN
2017-02-08 15:40:39 +01:00
Stian Thorgersen 86fb74f00f Merge pull request #3815 from pedroigor/2.5.x
[2.5.x] Authz export fixes
2017-02-08 15:00:24 +01:00
Stian Thorgersen ac7b5a9708 Merge pull request #3844 from pedroigor/KEYCLOAK-4373-2.5.x
[2.5.x][KEYCLOAK-4373] - Adapter Feature Pack is missing keycloak-authz-client
2017-02-08 14:58:30 +01:00
Frederik Libert e45c7ce19f KEYCLOAK-4378 New user attribute is not added after first login from broker 2017-02-08 14:56:08 +01:00
Pedro Igor dde05cdb0e [KEYCLOAK-4373] - Adapter Feature Pack is missing keycloak-authz-client 2017-02-07 08:46:53 -02:00
mposolda 890f9aa393 KEYCLOAK-4385 Added BundleBasedKeycloakConfigResolver 2017-02-06 21:25:36 +01:00
Bill Burke 83804d5f2e Merge pull request #3840 from patriot1burke/2.5.x
KEYCLOAK-4381
2017-02-06 13:00:15 -05:00
Bill Burke 244f6ecbc7 KEYCLOAK-4381 2017-02-06 09:37:34 -05:00
Stian Thorgersen ac8ab80e01 Merge pull request #3833 from stianst/KEYCLOAK-4370-2.5.x
KEYCLOAK-4370 Prevent LDAP provider from being migrated twice
2017-02-06 08:21:27 +01:00
mposolda dcb56d6774 KEYCLOAK-4371 Offline Tokens still useless When SSO Session Max is Reached and normal userSession expired 2017-02-03 12:07:51 +01:00
Stian Thorgersen a57aa6257f KEYCLOAK-4370 Prevent LDAP provider from being migrated twice 2017-02-03 10:07:07 +01:00
Stian Thorgersen b913a18106 Merge pull request #3826 from stianst/KEYCLOAK-4338-2.5.x
Keycloak 4338 2.5.x
2017-02-03 08:58:47 +01:00
mposolda 27f9ec9381 KEYCLOAK-4364 Fix OpenLDAP issue with renaming DN 2017-02-02 22:23:10 +01:00
Stian Thorgersen 7a24fd87b0 Merge pull request #3822 from ssilvert/2.5.x
KEYCLOAK-4362 Split migration-domain script into two separate scripts
2017-02-02 21:08:29 +01:00
Stian Thorgersen 9c8443a5fc Merge pull request #3821 from patriot1burke/2.5.x
KEYCLOAK-4363
2017-02-02 11:32:33 +01:00
Stian Thorgersen 3a466df3ac KEYCLOAK-4366 Issues when keycloak.js is initialized with token 2017-02-02 10:58:38 +01:00
Stian Thorgersen e6f4e678a0 KEYCLOAK-4338 KEYCLOAK-4331 Fixes to session iframe 2017-02-02 10:58:38 +01:00
Stan Silvert 51868ba3bf KEYCLOAK-4262 Split migration-domain script into two separate scripts 2017-02-01 14:16:33 -05:00
Bill Burke 6fc1909cf0 KEYCLOAK-4363 2017-02-01 10:19:31 -05:00
Bill Burke 59ad412159 Merge pull request #3817 from patriot1burke/2.5.x
KEYCLOAK-4218
2017-02-01 08:55:20 -05:00
Bill Burke 42415db551 KEYCLOAK-4218 2017-01-31 15:14:52 -05:00
Pedro Igor 865af553cf [KEYCLOAK-4340] - Exporting authorization settings is updating policies with wrong data 2017-01-31 13:37:00 -02:00
Pedro Igor 18d45cc325 [KEYCLOAK-4341] - Resources are not properly exported when exporting authorization settings 2017-01-31 13:36:54 -02:00
Stian Thorgersen b697e3d4a9 Set version to 2.5.4.Final-SNAPSHOT 2017-01-30 15:21:06 +01:00
Stian Thorgersen 7d43e405d6 Set version to 2.5.3.Final 2017-01-30 15:19:35 +01:00
Stian Thorgersen cc195c469f Merge pull request #3808 from hmlnarik/KEYCLOAK-4329-NPE-when-not-providing-KeyInfo-element-in-IdP-initiated-SSO-SAML-2.5
KEYCLOAK-4329 Fix NPE when not providing KeyInfo element in IdP initiated SSO SAML
2017-01-30 15:15:35 +01:00
Hynek Mlnarik 8c5330f32e KEYCLOAK-4329 Fix NPE when not providing KeyInfo element in IdP initiated SSO SAML 2017-01-30 12:02:56 +01:00
Stian Thorgersen 8a5658a86c Set version to 2.5.3.Final-SNAPSHOT 2017-01-27 09:26:45 +01:00
Stian Thorgersen 7b0693671c Set version to 2.5.2.Final 2017-01-27 09:26:44 +01:00
Stian Thorgersen aea45e46da Merge pull request #3801 from mstruk/2.5.x
KEYCLOAK-4324 Upgrade and unify Aesh version to 0.66.12
2017-01-27 09:23:20 +01:00
Marko Strukelj 243ce2fc65 KEYCLOAK-4324 Upgrade and unify Aesh version to 0.66.12 2017-01-26 17:04:22 +01:00
keycloak-bot 1200955643 Set version to 2.5.2.Final-SNAPSHOT 2017-01-26 06:07:05 +00:00
keycloak-bot 1ad464c681 Set version to 2.5.1.Final 2017-01-26 05:17:37 +00:00
Bill Burke 88a37067ad Merge pull request #3796 from patriot1burke/master
KEYCLOAK-4289
2017-01-25 17:27:53 -05:00
Bill Burke c6dab26769 KEYCLOAK-4289 2017-01-25 16:30:30 -05:00
Stian Thorgersen 9bceec9ef5 Merge pull request #3795 from stianst/KEYCLOAK-4286
KEYCLOAK-4286 Add deprecated support for old keycloak.js
2017-01-25 19:44:32 +01:00
Stian Thorgersen d1e491d57d KEYCLOAK-4286 Add deprecated support for old keycloak.js 2017-01-25 15:59:43 +01:00
Stian Thorgersen 7cfa1cc368 Merge pull request #3792 from hmlnarik/KEYCLOAK-4281-Some-adapter-tests-fail-for-Wildfly
KEYCLOAK-4281 Fix tests for SAML adapters in Arquillian TS
2017-01-25 12:29:17 +01:00
Stian Thorgersen b79ee3c7f3 Merge pull request #3794 from hmlnarik/KEYCLOAK-4258-null
KEYCLOAK-4258 Disable server-config-migration for auth-server-wildfly
2017-01-25 12:27:32 +01:00
Hynek Mlnarik 6085b21c36 KEYCLOAK-4258 Disable server-config-migration for auth-server-wildfly 2017-01-25 12:22:47 +01:00
Marek Posolda b24d2e064a Merge pull request #3791 from mposolda/master
KEYCLOAK-4282 Import authorization after users are imported
2017-01-25 12:21:21 +01:00
Stian Thorgersen 4fcb22c540 Merge pull request #3793 from stianst/KEYCLOAK-4259
KEYCLOAK-4259 Tweak login screen
2017-01-25 08:22:18 +01:00
Stian Thorgersen 07689c9537 KEYCLOAK-4259 Tweak login screen 2017-01-25 08:21:58 +01:00
Hynek Mlnarik e329c7801d KEYCLOAK-4281 Fix tests for SAML adapters in Arquillian TS 2017-01-24 22:36:03 +01:00
mposolda 2de2df3a41 KEYCLOAK-4282 Fix authorization import in DirImportProvider 2017-01-24 21:57:35 +01:00
mposolda 194a63cc71 KEYCLOAK-4282 Import authorization after users are imported 2017-01-24 17:32:34 +01:00
Bill Burke 6392405413 Merge remote-tracking branch 'upstream/master' 2017-01-24 07:13:52 -05:00
Stian Thorgersen a18a4477e0 Merge pull request #3784 from hmlnarik/KEYCLOAK-4236-Error-importing-SAML-Metadata-with-AttributeProfile-element-
KEYCLOAK-4236 Fix AttributeProfile element handler in SAML metadata
2017-01-24 10:34:39 +01:00
Stian Thorgersen 94ffeda62a Merge pull request #3773 from hmlnarik/KEYCLOAK-4181-SAML-Response-without-any-assertion-leads-to-an-exception
KEYCLOAK-4181 Fix handling of SAML error code in broker
2017-01-24 10:33:05 +01:00
Stian Thorgersen 264e81efb2 Merge pull request #3790 from stianst/KEYCLOAK-4259
KEYCLOAK-4259 Add top-margin to container to prevent overlay with logo
2017-01-24 09:36:11 +01:00
Stian Thorgersen cea52a6db9 KEYCLOAK-4259 Add top-margin to container to prevent overlay with logo 2017-01-24 09:35:57 +01:00
Stian Thorgersen b8c7fcf587 Merge pull request #3789 from stianst/KEYCLOAK-4259
KEYCLOAK-4259 Reverted original padding around logo
2017-01-24 09:27:46 +01:00
Stian Thorgersen 04228791f3 KEYCLOAK-4259 Reverted original padding around logo 2017-01-24 09:27:28 +01:00
Stian Thorgersen 04c4110f76 Merge pull request #3787 from pedroigor/KEYCLOAK-3261
[KEYCLOAK-3261] - Properly handle apps deployed at the ROOT context
2017-01-24 08:37:40 +01:00
Pedro Igor 13e92cdb35 [KEYCLOAK-3261] - Properly handle apps deployed at the ROOT context 2017-01-23 21:27:43 -02:00
Marek Posolda bd271b2367 Merge pull request #3786 from mposolda/master
KEYCLOAK-4273 Fix failing MSAD tests
2017-01-23 23:09:41 +01:00
mposolda 9fea9f6fe0 KEYCLOAK-4273 Fix failing MSAD tests 2017-01-23 22:29:13 +01:00
Marek Posolda 8717cd0090 Merge pull request #3785 from mposolda/master
KEYCLOAK-4274 Fix recursive composite role mappings
2017-01-23 19:01:25 +01:00
mposolda e487db349c KEYCLOAK-4274 Fix recursive composite role mappings 2017-01-23 17:55:45 +01:00
Marek Posolda 29c0fe564c Merge pull request #3752 from mposolda/master
KEYCLOAK-4024 Migration of old offline tokens
2017-01-23 16:25:35 +01:00
Marek Posolda b2d1a1a17f Merge pull request #3783 from mposolda/msad-ldap
KEYCLOAK-4269
2017-01-23 15:07:19 +01:00
Pavel Drozd 4868918f94 Merge pull request #3774 from vramik/KEYCLOAK-4263
KEYCLOAK-4263 disable authorization tests in integration testsuite for product profile
2017-01-23 14:05:14 +01:00
Stian Thorgersen 15d0a116ac Merge pull request #3769 from hmlnarik/KEYCLOAK-4167-Unable-to-validate-access-token-for-OIDC-External-IDP-using-configured-public-key
KEYCLOAK-4167 Always use preset key for verification if key ID not set
2017-01-23 13:59:35 +01:00
Hynek Mlnarik b5212d58ec KEYCLOAK-4236 Fix AttributeProfile element handler in SAML metadata 2017-01-23 13:46:01 +01:00
mposolda cf1c577840 Rename some tests 2017-01-23 13:42:12 +01:00
mposolda 57127f39d0 KEYCLOAK-4269 2017-01-23 13:36:54 +01:00
Stian Thorgersen 052534de82 Merge pull request #3764 from vramik/KEYCLOAK-4098
KEYCLOAK-4098 simplify + fix migration test
2017-01-23 13:04:32 +01:00
Stian Thorgersen 99e1eac094 Merge pull request #3775 from hmlnarik/KEYCLOAK-2847-Unexpected-error-when-trying-to-update-clientTemplate-to-already-existing-name
KEYCLOAK-2847 Fix exception convertor for Wildfly
2017-01-23 13:00:58 +01:00
Stian Thorgersen 7410bdb31c Merge pull request #3756 from mstruk/KEYCLOAK-3657
KEYCLOAK-3657 Role id is not preserved during import-export operation
2017-01-23 09:59:02 +01:00
Stan Silvert cc9c8d8ca1 Merge pull request #3781 from ssilvert/logo-padding
KEYCLOAK-4259: Login page rendering broken
2017-01-20 18:02:16 -05:00
Stan Silvert f55d18189c KEYCLOAK-4259: Login page rendering broken 2017-01-20 16:07:36 -05:00
Marek Posolda 6097a0c9e1 Merge pull request #3780 from mposolda/msad-ldap
KEYCLOAK-2403 Cannot create user in LDAP/AD from Keycloak using Full …
2017-01-20 21:57:30 +01:00
mposolda 39f8311484 KEYCLOAK-2403 Cannot create user in LDAP/AD from Keycloak using Full Name User Federation Mapper 2017-01-20 21:08:26 +01:00
Stan Silvert fe8e437e74 Merge pull request #3768 from ssilvert/otp-scrollbar
KEYCLOAK-3884: Another small tweak.
2017-01-20 14:22:27 -05:00
Stian Thorgersen 1373708dea Merge pull request #3760 from sldab/state-param-no-slash
KEYCLOAK-4222 Remove slash from state parameter
2017-01-20 09:33:20 +01:00
Marek Posolda 34605ee3c6 Merge pull request #3777 from mposolda/msad-ldap
KEYCLOAK-4266 MSAD: User is disabled after registration
2017-01-20 09:29:50 +01:00
mposolda 3444fb62f1 KEYCLOAK-4266 MSAD: User is disabled after registration 2017-01-19 21:32:10 +01:00
Slawomir Dabek cc788cf44e KEYCLOAK-4222 Remove slash from state parameter 2017-01-19 20:11:18 +01:00
Hynek Mlnarik 13e4f607ad KEYCLOAK-2847 Fix exception convertor for Wildfly 2017-01-19 18:11:51 +01:00
Hynek Mlnarik 5da491c270 KEYCLOAK-4181 Fix handling of SAML error code in broker 2017-01-19 16:30:06 +01:00
Hynek Mlnarik 99fcc51019 KEYCLOAK-4261 Fix response type to SAML AuthnRequest messages 2017-01-19 16:30:06 +01:00
Hynek Mlnarik 350b9550c3 KEYCLOAK-4264 2017-01-19 16:30:01 +01:00
Hynek Mlnarik f289b281a0 KEYCLOAK-4262 2017-01-19 16:00:03 +01:00
Vlasta Ramik 9cd860d698 disable authorization tests in integration testsuite for product profile 2017-01-19 14:55:20 +01:00
Stian Thorgersen 536b88790e Merge pull request #3757 from mstruk/KEYCLOAK-4150
KEYCLOAK-4150 Unresolved variable ${cliane_security-admin-console} in admin web client
2017-01-19 13:55:36 +01:00
Bill Burke 73d3e8afd9 Merge pull request #3770 from patriot1burke/master
KEYCLOAK-4077
2017-01-19 07:35:10 -05:00
Vlasta Ramik aef6bb9789 simplify + fix migration test 2017-01-19 12:35:59 +01:00
Bill Burke b4f56e92f3 Merge remote-tracking branch 'upstream/master' 2017-01-18 18:29:01 -05:00
Bill Burke 8daa2c3703 KEYCLOAK-4256 2017-01-18 18:28:08 -05:00
Pedro Igor c7f2a0ffdd Merge pull request #3766 from pedroigor/KEYCLOAK-4203
[KEYCLOAK-4203] - Removing references to Drools
2017-01-18 13:31:23 -02:00
Pedro Igor c19360c6f2 [KEYCLOAK-4203] - Removing references to Drools 2017-01-18 12:44:30 -02:00
Stian Thorgersen 71da6ab4e9 Merge pull request #3772 from stianst/KEYCLOAK-4252
KEYCLOAK-4252 Update server-overlay assembly
2017-01-18 13:44:04 +01:00
Stian Thorgersen 9f33685785 KEYCLOAK-4252 Update server-overlay assembly 2017-01-18 12:29:39 +01:00
Hynek Mlnarik df4f1e7129 KEYCLOAK-4167 Always use preset key for verification if key ID not set 2017-01-18 10:29:06 +01:00
Stian Thorgersen 212182ee34 Merge pull request #3765 from zschwarz/community
KEYCLOAK-4233 Run failing i18n tests with community profile
2017-01-18 08:52:17 +01:00
Stian Thorgersen 86988833e9 Merge pull request #3761 from abstractj/KEYCLOAK-4207
[KEYCLOAK-4207] SSSD Provider - NullPointerException when mail attribute is not filled
2017-01-18 08:41:36 +01:00
Stian Thorgersen 5a0504b5d9 Merge pull request #3753 from hmlnarik/KEYCLOAK-4216-mod-auth-mellon-logout-failed-when-using-SSO
KEYCLOAK-4216 Fix NPE and logout binding choice
2017-01-18 08:40:02 +01:00
Stian Thorgersen e364680792 Merge pull request #3721 from hmlnarik/KEYCLOAK-3399-End-session-endpoint-returns-error-when-keycloak-session-is-expired
KEYCLOAK-3399 Ignore user session expiration on OIDC logout
2017-01-18 08:38:53 +01:00
Marek Posolda ef46070410 Merge pull request #3771 from mposolda/msad-ldap
KEYCLOAK-2333 LDAP/MSAD password policies are not used when user chan…
2017-01-17 21:54:01 +01:00
mposolda 843b4b470b KEYCLOAK-2333 LDAP/MSAD password policies are not used when user changes password 2017-01-17 21:06:09 +01:00
Bill Burke dcf6da2a51 KEYCLOAK-4077 2017-01-17 09:20:44 -05:00
Stian Thorgersen 3d29816ea3 Merge pull request #3763 from vmuzikar/KEYCLOAK-4230
KEYCLOAK-4230 Fix failing Arquillian tests in the "other" module
2017-01-17 14:15:03 +01:00
Stan Silvert 2eeb2f52c5 KEYCLOAK-3884: Another small tweak. 2017-01-16 14:24:44 -05:00
Stan Silvert 32827be8b1 Merge pull request #3767 from ssilvert/remove-time-conversion
KEYCLOAK-3953: Remove recalculation of time when units change
2017-01-16 12:05:37 -05:00
Stan Silvert 23c1f513e7 KEYCLOAK-3953: Remove recalculation of time when units change 2017-01-16 09:55:08 -05:00
zschwarz ae40bfb96e KEYCLOAK-4233 Run failing i18n tests with community profile 2017-01-16 15:27:39 +01:00
Vaclav Muzikar 547f5ecfa6 KEYCLOAK-4230 Fix failing Arquillian tests in the "other" module 2017-01-16 10:59:02 +01:00
Stian Thorgersen 1913f801b9 Merge pull request #3739 from hmlnarik/KEYCLOAK-2847-Unexpected-error-when-trying-to-update-clientTemplate-to-already-existing-name
KEYCLOAK-2847 Fix for client template duplicate name
2017-01-16 09:45:39 +01:00
Stian Thorgersen 5842f7c837 Merge pull request #3751 from stianst/KEYCLOAK-4192
KEYCLOAK-4192 Added missing produces annotations for update methods
2017-01-16 09:41:29 +01:00
Stian Thorgersen 1ef2eb6110 Merge pull request #3693 from ssilvert/config-migration-2
KEYCLOAK-4101: jboss-cli script to do migration of configuration
2017-01-16 09:37:01 +01:00
Stian Thorgersen 178625d3f2 Merge pull request #3745 from velias/master
KEYCLOAK-4202 - Attribute importer of Social Identity providers doesn't handle JSON 'null' values correctly
2017-01-16 08:22:04 +01:00
Bruno Oliveira 9fb46a7b1c [KEYCLOAK-4207] SSSD Provider - NullPointerException when mail attribute is not filled 2017-01-13 17:35:55 -02:00
Bill Burke bea8de8a1a Merge pull request #3758 from patriot1burke/master
KEYCLOAK-4220
2017-01-13 12:58:21 -05:00
Marko Strukelj d68f6bbc42 KEYCLOAK-4150 Unresolved variable ${cliane_security-admin-console} in admin web client 2017-01-13 17:48:21 +01:00
Marko Strukelj 7de999a7f9 KEYCLOAK-3657 Role id is not preserved during import-export operation 2017-01-13 17:46:30 +01:00
Bill Burke ffb688b393 Merge remote-tracking branch 'upstream/master' 2017-01-13 11:45:55 -05:00
Bill Burke 6aee6b0c46 KEYCLOAK-4220 2017-01-13 11:45:48 -05:00
Bill Burke aa78c9eaf5 Merge pull request #3666 from hmlnarik/KEYCLOAK-4072-User-ID-from-User-Storage-Provider-too-long-for-Offline-User-Session
KEYCLOAK-4072 Add explicit check for key format
2017-01-13 09:39:45 -05:00
Hynek Mlnarik 02eda8943c KEYCLOAK-4216 Fix NPE and logout binding choice 2017-01-13 14:30:32 +01:00
Pavel Drozd 2f7143e72f Merge pull request #3749 from pdrozd/KEYCLOAK-4210
KEYCLOAK-4210: Added Fuse admin tests
2017-01-13 11:37:24 +01:00
mposolda 9ad14d991c KEYCLOAK-4140 Migration of old offline tokens 2017-01-13 11:35:19 +01:00
Marek Posolda 59a6c9f13f Merge pull request #3748 from mposolda/master
KEYCLOAK-4201 Offline tokens become useless when accessing admin REST…
2017-01-13 10:20:33 +01:00
Stian Thorgersen ae838c12db Merge pull request #3744 from martin-kanis/KEYCLOAK-4157
KEYCLOAK-4157 Move drools-bom from keycloak-parent
2017-01-13 09:57:21 +01:00
Stian Thorgersen ac9268bd48 KEYCLOAK-4192 Added missing produces annotations for update methods 2017-01-13 09:56:20 +01:00
Hynek Mlnarik 0b58bebc90 KEYCLOAK-2847 Fix for client template duplicate name 2017-01-13 09:32:28 +01:00
mposolda 93157e49d5 KEYCLOAK-4201 Offline tokens become useless when accessing admin REST API 2017-01-13 09:06:53 +01:00
Pavel Drozd 3d9f11168e KEYCLOAK-4210: Added Fuse admin tests 2017-01-13 01:05:37 +01:00
Stan Silvert c4cce147e2 Merge pull request #3747 from ssilvert/otp-scrollbar
KEYCLOAK-3884: OTP login page cutoff under weird sizes
2017-01-12 16:37:43 -05:00
Stan Silvert 3a2927e12e KEYCLOAK-3884: OTP login page cutoff under weird sizes 2017-01-12 16:02:04 -05:00
Stan Silvert 901ff9c3d5 KEYCLOAK-4101: Uncomment sssd module from pom 2017-01-12 12:10:03 -05:00
Bill Burke 8de3b26126 Merge pull request #3746 from patriot1burke/master
KEYCLOAK-4099
2017-01-12 11:17:28 -05:00
Bill Burke 1e51ade620 Merge remote-tracking branch 'upstream/master' 2017-01-12 09:34:36 -05:00
Bill Burke 89e6f93fa4 KEYCLOAK-4099 2017-01-12 09:34:26 -05:00
Bill Burke 41630d6962 Merge pull request #3727 from hmlnarik/KEYCLOAK-4141
KEYCLOAK-4141
2017-01-12 08:49:29 -05:00
Stian Thorgersen efcd0346fc Merge pull request #3742 from hmlnarik/KEYCLOAK-4167-Unable-to-validate-access-token-for-OIDC-External-IDP-using-configured-public-key
KEYCLOAK-4167 Make OIDC identity provider key ID configurable
2017-01-12 14:41:53 +01:00
Vlastimil Elias f13deab812 KEYCLOAK-4202 - Attribute importer of Social Identity providers doesn't
handle JSON 'null' values correctly
2017-01-12 14:14:09 +01:00
Martin Kanis f28b3c1269 KEYCLOAK-4157 Move drools-bom from keycloak-parent 2017-01-12 13:58:56 +01:00
Marek Posolda 5e1ec459e5 Merge pull request #3743 from mposolda/master
KEYCLOAK-4137 Significant performance lag in 'get client role by role…
2017-01-12 12:48:23 +01:00
mposolda 9a6f202c46 KEYCLOAK-4137 Significant performance lag in 'get client role by role name' 2017-01-12 11:55:58 +01:00
Hynek Mlnarik e11957ecf3 KEYCLOAK-4167 Make OIDC identity provider key ID configurable 2017-01-11 18:24:22 +01:00
Marek Posolda 23c8809598 Merge pull request #3738 from mposolda/master
KEYCLOAK-4066 TimeoutException in cluster environment in ClearExpired…
2017-01-11 13:01:58 +01:00
mposolda 7098daaf72 KEYCLOAK-4066 TimeoutException in cluster environment in ClearExpiredSessions 2017-01-11 12:27:51 +01:00
Stian Thorgersen 811d532b48 Merge pull request #3735 from stianst/KEYCLOAK-4179
KEYCLOAK-4179 Fixed logic to init with token to prevent issues with t…
2017-01-10 15:19:40 +01:00
Stian Thorgersen 7ceef826ac Merge pull request #3734 from stianst/KEYCLOAK-4176
KEYCLOAK-4176
2017-01-10 15:19:05 +01:00
Stan Silvert fe294dcb58 KEYCLOAK-4101: Fix pom 2017-01-10 07:37:40 -05:00
Stan Silvert 8441bda3da KEYCLOAK-4101: Move tests under testsuite. Only run under
-Pauth-server-wildfly
2017-01-10 07:30:58 -05:00
Marek Posolda 227900f288 Merge pull request #3731 from mposolda/master
KEYCLOAK-4175 Provide a way to set the connect and read timeout for l…
2017-01-10 09:49:18 +01:00
Stian Thorgersen 345e0da76d Merge pull request #3733 from stianst/KEYCLOAK-4180
KEYCLOAK-4180 When you turn on authorization for client Clustering ta…
2017-01-10 09:33:04 +01:00
Stian Thorgersen 139e12fa5f KEYCLOAK-4179 Fixed logic to init with token to prevent issues with timeSkew 2017-01-10 09:09:50 +01:00
Hynek Mlnarik 4df70c517d KEYCLOAK-4141 2017-01-10 09:02:36 +01:00
Pavel Drozd cbd6f7e1d0 Merge pull request #3723 from mhajas/KEYCLOAK-3841
KEYCLOAK-3841 Unignore and fix fuse on eap test
2017-01-10 08:10:22 +01:00
Stian Thorgersen 426e55664f KEYCLOAK-4176 2017-01-10 08:02:49 +01:00
Stian Thorgersen ab0a669662 KEYCLOAK-4180 When you turn on authorization for client Clustering tab appears without saving 2017-01-10 06:59:40 +01:00
Stian Thorgersen 5c03b20bd1 Merge pull request #3730 from tkyjovsk/fix-module-version
fixed version of module `integration-arquillian-tests-adapters-remote`
2017-01-10 06:24:14 +01:00
Stian Thorgersen 7eeebff874 Merge pull request #3720 from hmlnarik/KEYCLOAK-4091-Possible-NullPointerExceptions-with-disabled-cache
KEYCLOAK-4091 Prevent NPE with disabled cache
2017-01-10 06:23:10 +01:00
Stian Thorgersen a0a7372160 Merge pull request #3728 from stianst/KEYCLOAK-4014
KEYCLOAK-4165 KEYCLOAK-4014 Add missing sources for ace editor and fi…
2017-01-10 06:20:07 +01:00
Stan Silvert 9e697d033f KEYCLOAK-4101: Use the same undocumented tags for server-args. Only
documented in the examples.
2017-01-09 18:15:37 -05:00
Stan Silvert 2ec3eaf68a KEYCLOAK-4101: Use undocumented method to specify java-opts 2017-01-09 18:15:34 -05:00
Stan Silvert e047872c25 KEYCLOAK-4101: Bump version on pom 2017-01-09 18:15:31 -05:00
Stan Silvert f1173f8022 KEYCLOAK-4101: Try setting javaOpts on each individual execution. 2017-01-09 18:15:28 -05:00
Stan Silvert 420286c103 KEYCLOAK-4101: jboss-cli script to do migration of configuration 2017-01-09 18:15:26 -05:00
Bill Burke 1495f4881e Merge pull request #3732 from patriot1burke/master
KEYCLOAK-3617 KEYCLOAK-4117 KEYCLOAK-4118
2017-01-09 18:14:11 -05:00
Bill Burke 452611242c Merge remote-tracking branch 'upstream/master' 2017-01-09 17:14:34 -05:00
Bill Burke d075172fd2 KEYCLOAK-3617 KEYCLOAK-4117 KEYCLOAK-4118 2017-01-09 17:14:20 -05:00
mposolda c32620b718 KEYCLOAK-4175 Provide a way to set the connect and read timeout for ldap connections 2017-01-09 21:35:58 +01:00
Tomas Kyjovsky 37b8d1ad10 fixed version of module integration-arquillian-tests-adapters-remote and added it to the project structure 2017-01-09 18:45:27 +01:00
Marek Posolda be4f2aff63 Merge pull request #3729 from mposolda/master
KEYCLOAK-4178 Bad error message when kerberos provider unavailable
2017-01-09 18:31:49 +01:00
mposolda 14669dfbc5 KEYCLOAK-4178 Bad error message when kerberos provider unavailable 2017-01-09 16:56:58 +01:00
Marek Posolda 5cec0d4bef Merge pull request #3726 from mposolda/master
KEYCLOAK-2888 KEYCLOAK-3927 Fully migrate kerberos tests to the new t…
2017-01-09 15:07:28 +01:00
Stian Thorgersen dd74b57d13 KEYCLOAK-4165 KEYCLOAK-4014 Add missing sources for ace editor and fix loading of ace libs 2017-01-09 14:59:50 +01:00
mposolda a09bc6520f KEYCLOAK-2888 KEYCLOAK-3927 Fully migrate kerberos tests to the new testsuite 2017-01-09 13:50:41 +01:00
Stian Thorgersen 8a02ef1859 Merge pull request #3715 from hmlnarik/KEYCLOAK-4160
KEYCLOAK-4160
2017-01-09 12:50:38 +01:00
Stian Thorgersen 9ccd05ff54 Merge pull request #3725 from bdalenoord/KEYCLOAK-4177
KEYCLOAK-4177: Changed URL to FreeOTP homepage;
2017-01-09 11:28:09 +01:00
Bas Dalenoord 42a8a0eb15 KEYCLOAK-4177: Changed URL to FreeOTP homepage; 2017-01-09 10:30:29 +01:00
Pavel Drozd fb374ad99d Merge pull request #3716 from mhajas/KEYCLOAK-3704
KEYCLOAK-3704 Add missing test
2017-01-08 16:09:12 +01:00
Pavel Drozd a4f46d3310 Merge pull request #3714 from vramik/KEYCLOAK-4109
KEYCLOAK-4109 test + minor fix
2017-01-08 16:07:34 +01:00
Pedro Igor 5bc134ea7b Merge pull request #3717 from pedroigor/KEYCLOAK-4164
[KEYCLOAK-4164] - Creating typed resources always result in error
2017-01-06 17:29:47 -02:00
Pedro Igor 28c289cfb8 Merge pull request #3724 from pedroigor/KEYCLOAK-4166
[KEYCLOAK-4166] - Export/Import clients functionality not working as expected
2017-01-06 17:29:17 -02:00
Pedro Igor 0b5b27ea3a [KEYCLOAK-4166] - Export/Import clients functionality not working as expected 2017-01-06 16:07:10 -02:00
Stian Thorgersen f1dbe3c9e2 Merge pull request #3722 from stianst/KEYCLOAK-4096
KEYCLOAK-4096 Add migration test for realm keys
2017-01-06 16:08:10 +01:00
Hynek Mlnarik 9fb3201c8b KEYCLOAK-3399 Ignore user session expiration on OIDC logout 2017-01-06 15:15:46 +01:00
Stian Thorgersen 96f8f99313 Merge pull request #3707 from hmlnarik/KEYCLOAK-4148-AbstractParser-should-do-the-same
KEYCLOAK-4148 [AbstractParser] instantiate XMLInputFactory in singleton-like manner
2017-01-06 14:44:41 +01:00
mhajas 86c49f5e89 KEYCLOAK-3841 Unignore and fix fuse on eap test 2017-01-06 14:39:24 +01:00
Stian Thorgersen 017dbb1d9f Merge pull request #3719 from ssilvert/overlay-cli
KEYCLOAK-4123: keycloak-install.cli fails if not run from bin dir
2017-01-06 14:24:35 +01:00
Stian Thorgersen 60eda52aba KEYCLOAK-4096 Add migration test for realm keys 2017-01-06 14:18:57 +01:00
Hynek Mlnarik 377fbced4a KEYCLOAK-4091 Prevent NPE with disabled cache 2017-01-06 10:00:11 +01:00
Stian Thorgersen fb6a8da863 Merge pull request #3713 from stianst/KEYCLOAK-3952
KEYCLOAK-3952
2017-01-06 07:17:27 +01:00
Hynek Mlnarik 0cb5ba0f6e KEYCLOAK-4160 2017-01-06 07:00:47 +01:00
Stan Silvert eb1b011989 KEYCLOAK-4123: keycloak-install.cli fails if not run from bin dir 2017-01-05 21:25:41 -05:00
Pedro Igor 72691b2e74 [KEYCLOAK-4164] - Creating typed resources always result in error 2017-01-05 14:32:49 -02:00
Bill Burke f9eeecf836 test KEYCLOAK-4013 2017-01-05 11:27:17 -05:00
mhajas 61e7936d79 KEYCLOAK-3704 Add missing test 2017-01-05 16:55:40 +01:00
Bill Burke 4934fe5a8e Merge remote-tracking branch 'upstream/master' 2017-01-05 10:52:12 -05:00
Hynek Mlnarik 2035398ef4 KEYCLOAK-4148 Instantiate XML DocumentBuilder in singleton-like manner 2017-01-05 16:07:50 +01:00
Stian Thorgersen 56160ef12b Merge pull request #3652 from little-headbanger/KEYCLOAK-4088_Http_wrapper_of_Angular_2_demo_app_doesn't_forward_http_errors
KEYCLOAK-4088 Http wrapper of Angular 2 demo app doesn't forward http…
2017-01-05 13:19:36 +01:00
Vlasta Ramik b0644ce18c test for KEYCLOAK-4109 + fix AuthorizationDisabledInPreviewTest 2017-01-05 11:14:41 +01:00
Pavel Drozd cf5c3aa53b Merge pull request #3710 from mhajas/KEYCLOAK-3488
KEYCLOAK-3488 Add missing test
2017-01-05 11:03:35 +01:00
Pavel Drozd f9e87516ae Merge pull request #3709 from mhajas/KEYCLOAK-3658
KEYCLOAK-3658 Add missing test
2017-01-05 11:02:44 +01:00
Pavel Drozd ed1a30f67b Merge pull request #3704 from vmuzikar/KEYCLOAK-4147
KEYCLOAK-4147 Fix Password Policy UI test
2017-01-05 11:01:18 +01:00
Pavel Drozd 77293b85e0 Merge pull request #3701 from vramik/KEYCLOAK-4145
KEYCLOAK-4145 fix PartialImportTest for migration tests
2017-01-05 10:58:51 +01:00
Hynek Mlnarik ad9210a7a7 KEYCLOAK-4148 Prevent unnecessary deserialization when supported
... and gain another ~ 5-10 %
2017-01-05 10:41:31 +01:00
Stian Thorgersen 15af61a7cc Merge pull request #3708 from stianst/KEYCLOAK-2856
KEYCLOAK-2856
2017-01-05 09:01:37 +01:00
Stian Thorgersen 2d1417d72b KEYCLOAK-3952
User Administration: Double step cancel
2017-01-05 08:50:22 +01:00
Stan Silvert 41404424ac Merge pull request #3712 from ssilvert/page-not-found-federation
KEYCLOAK-4155: User Federation: Page not found when click cancel crea…
2017-01-04 14:43:22 -05:00
Pedro Igor a2a531a747 Merge pull request #3711 from pedroigor/KEYCLOAK-3517
[KEYCLOAK-3517] - Filtering SAML ECP flow
2017-01-04 17:34:09 -02:00
Stan Silvert a76c52ef84 KEYCLOAK-4155: User Federation: Page not found when click cancel creating
ldap provider
2017-01-04 14:03:39 -05:00
Pedro Igor ed75ef900a [KEYCLOAK-3517] - Removing SAML ECP from expected flows. ECP already tested in other places. 2017-01-04 13:06:08 -02:00
Hynek Mlnarik 862502f3ed KEYCLOAK-4148 StringUtils property replacer optimization
StringUtils.getSystemPropertyAsString is used in SAML attribute
retrieval and uses StringBuffer and suboptimal regex. This optimization
gains another ~ 3 %.
2017-01-04 15:24:57 +01:00
Hynek Mlnarik 2b57b8371b KEYCLOAK-4148 Instantiate XML DatatypeFactory in singleton-like manner
... to gain another ~ 6 %
2017-01-04 15:24:57 +01:00
Pedro Igor 4044b39ab7 [KEYCLOAK-3517] - Filtering SAML ECP flow 2017-01-04 11:17:39 -02:00
mhajas e0bc56960b KEYCLOAK-3488 Add missing test 2017-01-04 10:06:07 +01:00
mhajas 180352aa09 KEYCLOAK-3658 Add missing test 2017-01-04 09:00:36 +01:00
Stian Thorgersen 09a61f4706 KEYCLOAK-2856 2017-01-04 08:38:06 +01:00
Hynek Mlnarik 5150251141 KEYCLOAK-4148 [AbstractParser] instantiate XMLInputFactory in singleton-like manner 2017-01-04 08:06:56 +01:00
Stian Thorgersen 732d56b0c0 Merge pull request #3706 from hmlnarik/KEYCLOAK-4148-StaxParserUtil-should-instantiate-XMLInputFactory-only-once
KEYCLOAK-4148 Instantiate XMLInputFactory in singleton-like manner
2017-01-04 07:22:17 +01:00
Stian Thorgersen 08aeb13804 Merge pull request #3705 from hmlnarik/KEYCLOAK-3950-Tests-of-SAML-AuthnRequests-NameID-format-variants
KEYCLOAK-3950 - Tests for SAML Name ID format variants in AuthnRequest
2017-01-04 07:15:33 +01:00
Stian Thorgersen 1f0469894a Merge pull request #3702 from mstruk/admin-cli
KEYCLOAK-4146 Admin CLI enhancements
2017-01-04 07:13:09 +01:00
Stian Thorgersen 8a0859fcba Merge pull request #3700 from stianst/KEYCLOAK-2980
KEYCLOAK-2980 Fix admin query for resource path
2017-01-04 07:01:19 +01:00
Stian Thorgersen 5212f57b5b Merge pull request #3703 from stianst/KEYCLOAK-4116
KEYCLOAK-4116 Trim username on recover password page
2017-01-04 07:00:51 +01:00
Bill Burke 6ac1301dc2 Merge remote-tracking branch 'upstream/master' 2017-01-03 15:21:16 -05:00
Hynek Mlnarik 1eb0cde74f KEYCLOAK-4148 Instantiate XMLInputFactory in singleton-like manner 2017-01-03 15:34:28 +01:00
Hynek Mlnarik 32f8fd4b9f KEYCLOAK-3950 - Tests for SAML Name ID format variants in AuthnRequest 2017-01-03 15:34:28 +01:00
Vaclav Muzikar 90a5272860 KEYCLOAK-4147 Fix Password Policy UI test 2017-01-03 13:09:38 +01:00
Hynek Mlnarik 40a8f0a243 KEYCLOAK-3950 - Tests for SAML Name ID format variants in AuthnRequest 2017-01-03 12:48:18 +01:00
Stian Thorgersen f2ee9df600 KEYCLOAK-4116 Trim username on recover password page 2017-01-03 11:50:08 +01:00
Marko Strukelj 9ab44b79ce KEYCLOAK-4146 Admin CLI enhancements
- Added -b, --body and composite roles support
- Added a test that performs a demo session
2017-01-03 11:14:12 +01:00
Vlasta Ramik 50c11e105b fix PartialImportTest for migration tests 2017-01-03 10:36:22 +01:00
Stian Thorgersen b7c98ed433 KEYCLOAK-2980 Fix admin query for resource path 2017-01-03 10:34:21 +01:00
Stian Thorgersen d217b23719 Merge pull request #3699 from stianst/KEYCLOAK-4090
KEYCLOAK-4090
2017-01-03 10:27:59 +01:00
Stian Thorgersen 171c6ab88f Merge pull request #3697 from stianst/master
Cleanup of tests including groups for Travis
2017-01-03 08:41:00 +01:00
Stian Thorgersen 45411b1199 KEYCLOAK-4090 2017-01-03 07:53:08 +01:00
Stian Thorgersen e0bfb13ed9 Cleanup of tests including groups for Travis 2017-01-03 07:52:00 +01:00
Stian Thorgersen 902332c5ae Merge pull request #3696 from stianst/KEYCLOAK-4038
KEYCLOAK-4038 Get bind credential from component if stored
2017-01-02 15:44:59 +01:00
Stian Thorgersen 08d7211a93 KEYCLOAK-4038 Get bind credential from component if stored 2017-01-02 14:40:12 +01:00
Stian Thorgersen 1c0e204f50 Merge pull request #3690 from stianst/master
Bump version to 2.5.1.Final-SNAPSHOT
2017-01-02 08:52:04 +01:00
Stian Thorgersen d6e620a266 Merge pull request #3689 from stianst/KEYCLOAK-4133
KEYCLOAK-4133
2017-01-02 08:51:37 +01:00
Pedro Igor 54b3d3abec Merge pull request #3695 from pedroigor/KEYCLOAK-4136
[KEYCLOAK-4136] - Missing update on resource_set endpoint
2017-01-01 18:01:53 -02:00
Pedro Igor 31ed69a970 [KEYCLOAK-4136] - Missing update on resource_set endpoint 2016-12-29 11:59:42 -02:00
Marek Posolda b1d9fd670a Merge pull request #3691 from vramik/migration-duplicate-emails
KEYCLOAK-4059 Added migration test
2016-12-22 12:42:16 +01:00
Marek Posolda bf58511d81 Merge pull request #3692 from mposolda/l1-bug
RHSSO-377 Added reproducer unit test L1SerializationIssueTest
2016-12-22 12:41:49 +01:00
mposolda b5317f3485 RHSSO-377 Added reproducer unit test L1SerializationIssueTest 2016-12-22 11:41:10 +01:00
Stian Thorgersen e805ffd945 Bump version to 2.5.1.Final-SNAPSHOT 2016-12-22 08:22:18 +01:00
Stian Thorgersen 40b5731198 KEYCLOAK-4133
Login status iframe endpoint doesn't set encoding
2016-12-22 08:20:55 +01:00
Stian Thorgersen ebd3d522e2 Merge pull request #3654 from tkyjovsk/fix-many-users-test
fixed ManyUsersTest
2016-12-22 06:16:28 +01:00
Stian Thorgersen 04179c5681 Merge branch 'KEYCLOAK-4004' of https://github.com/l-robinson/keycloak into l-robinson-KEYCLOAK-4004 2016-12-22 06:13:41 +01:00
Stian Thorgersen 6c8ebdb456 Merge pull request #3686 from vramik/KEYCLOAK-3830
KEYCLOAK-3830 added missing test
2016-12-22 05:56:27 +01:00
Pedro Igor 85446c3b46 Merge pull request #3688 from pedroigor/KEYCLOAK-4125
[KEYCLOAK-4125] - Fixing when running in a cluster
2016-12-21 20:34:10 -02:00
Pedro Igor df7a68b709 [KEYCLOAK-4125] - Fixing when running in a cluster 2016-12-21 20:04:08 -02:00
Tomas Kyjovsky 1c65fd86ef fixed ManyUsersTest 2016-12-21 18:48:44 +01:00
Vlasta Ramik bb00524f94 Added migration for KEYCLOAK-4059 2016-12-21 15:39:48 +01:00
Vlasta Ramik 7f9e6bbf60 KEYCLOAK-3830 added missing test 2016-12-21 14:45:30 +01:00
Marek Posolda 2ba21485f9 Merge pull request #3685 from mposolda/master
KEYCLOAK-4128 ResourcePermissionManagementTest fails on Oracle DB
2016-12-21 13:44:15 +01:00
mposolda c998198aac KEYCLOAK-4128 ResourcePermissionManagementTest fails on Oracle DB 2016-12-21 13:01:37 +01:00
Marek Posolda 3e8d4e4eb6 Merge pull request #3684 from mposolda/master
Fix LDAP tests with mongo
2016-12-21 10:10:09 +01:00
Stian Thorgersen b15918b745 Merge pull request #3683 from stianst/KEYCLOAK-4127
KEYCLOAK-4127
2016-12-21 09:59:09 +01:00
mposolda d2b7f18480 Fix LDAP tests with mongo 2016-12-21 09:28:32 +01:00
Stian Thorgersen 663b99d884 KEYCLOAK-4127
Temporarily disable cache for authorization services as it breaks clustering
2016-12-21 08:36:24 +01:00
Stian Thorgersen e3e18913f1 Merge pull request #3682 from stianst/KEYCLOAK-4126
Change id of CachedStoreFactorySpi to authorizationCache
2016-12-21 08:34:28 +01:00
Stian Thorgersen f98c454775 Merge pull request #3681 from hmlnarik/KEYCLOAK-4122-Some-databases-fails-to-start
KEYCLOAK-4122
2016-12-21 08:32:27 +01:00
Stian Thorgersen 9c2944c090 Change id of CachedStoreFactorySpi to authorizationCache 2016-12-21 07:01:19 +01:00
Hynek Mlnarik 66eb9095c1 KEYCLOAK-4122 2016-12-20 20:28:13 +01:00
Stian Thorgersen e7c73518b3 Merge pull request #3680 from stianst/master
KEYCLOAK-4120
2016-12-20 15:04:29 +01:00
Bill Burke 172007f59c conflict 2016-12-20 08:56:08 -05:00
Stian Thorgersen e262f8fb63 KEYCLOAK-4120
Authz doesn't show in menu for clients
2016-12-20 14:46:56 +01:00
Stian Thorgersen b6b3c04400 Merge pull request #3663 from sldab/autodetect-bearer-only
KEYCLOAK-2962 Autodetect bearer-only clients
2016-12-20 14:05:25 +01:00
Stian Thorgersen f97a3e0745 Merge pull request #3678 from vramik/KEYCLOAK-3777
KEYCLOAK-3777 added missing test
2016-12-20 14:04:35 +01:00
Stian Thorgersen f9bccc83f9 Merge pull request #3679 from stianst/KEYCLOAK-4110
KEYCLOAK-4110
2016-12-20 14:03:56 +01:00
Marek Posolda 761714036e Merge pull request #3677 from mposolda/master
Fix LDAP tests with MSAD, RHDS and OpenLDAP
2016-12-20 13:27:10 +01:00
Stian Thorgersen d365d9d784 Merge pull request #3649 from sldab/bearer-client-credentials
KEYCLOAK-4086 Client credentials missing in bearer-only JSON config
2016-12-20 12:32:03 +01:00
mposolda 96f2985e86 Fix StackOverflowError on Mongo 2016-12-20 12:21:21 +01:00
Stian Thorgersen 7bad8e6ff3 KEYCLOAK-4110
Broken key providers in Admin Console
2016-12-20 12:08:18 +01:00
Vlasta Ramik 55d53214a1 KEYCLOAK-3777 added missing test 2016-12-20 11:50:37 +01:00
mposolda aee8398ee8 KEYCLOAK-4072 Minor update 2016-12-20 11:42:24 +01:00
mposolda 7cd63f2f8b Fix LDAP tests with MSAD, RHDS and OpenLDAP 2016-12-20 11:40:29 +01:00
Bill Burke 8b5aafc4b4 KEYCLOAK-4072 2016-12-20 09:42:43 +01:00
Stian Thorgersen f6323d94ec Merge pull request #3676 from stianst/KEYCLOAK-4109
KEYCLOAK-4109 Ability to disable impersonation
2016-12-20 09:35:03 +01:00
Stian Thorgersen eb7ad07e31 KEYCLOAK-4109 Ability to disable impersonation 2016-12-20 08:46:21 +01:00
Pedro Igor 7c7f87d201 Merge pull request #3675 from pedroigor/master
[KEYCLOAK-4034] - Minor changes to policy enforcer
2016-12-20 01:03:08 -02:00
Pedro Igor 18b94a2153 [KEYCLOAK-4034] - More logging. 2016-12-20 00:04:59 -02:00
Pedro Igor 0b3e867362 [KEYCLOAK-4034] - Minor changes to policy enforcer 2016-12-19 23:44:51 -02:00
Marek Posolda 3498273601 Merge pull request #3674 from mposolda/master
Remove obsolete maven profile
2016-12-20 00:18:15 +01:00
l-robinson 01a8c13ac0 Additional client name added to AccountTest.applications() 2016-12-20 09:40:19 +10:30
Pedro Igor 194ba6009f Merge pull request #3673 from pedroigor/master
[KEYCLOAK-4034] - Invalidating policy cache when creating resources and scopes
2016-12-19 20:55:53 -02:00
Pedro Igor c9c8acd029 [KEYCLOAK-4034] - Invalidating policy cache when creating resources and scopes 2016-12-19 20:28:49 -02:00
mposolda 7e2c06e301 Remove obsolete maven profile. Run LDAPLegacyImportTest just with the embedded LDAP 2016-12-19 22:15:13 +01:00
Pedro Igor 40591cff25 Merge pull request #3662 from pedroigor/KEYCLOAK-4034
[KEYCLOAK-4034] - Improvements to UI, performance and some code cleanup
2016-12-19 16:49:10 -02:00
Pedro Igor 5cf5168770 [KEYCLOAK-4034] - Improvements to UI, performance and some code cleanup 2016-12-19 16:48:16 -02:00
Marek Posolda cb57dbf58a Merge pull request #3672 from mposolda/master
KEYCLOAK-4087 LDAP group mapping should be possible via uidNumber in memberUid
2016-12-19 19:31:31 +01:00
mposolda 4b6df5d489 LDAP polishing 2016-12-19 18:11:23 +01:00
Slawomir Dabek b6d29ccd30 KEYCLOAK-2962 Autodetect bearrer-only clients
Suport more headers
2016-12-19 17:13:14 +01:00
Slawomir Dabek 16fb1e2078 KEYCLOAK-4086 Client credentials missing in bearer-only Keycloak OIDC JSON 2016-12-19 16:55:19 +01:00
mposolda ac00f7fee2 KEYCLOAK-4087 LDAP group mapping should be possible via uidNumber in memberUid mode 2016-12-19 16:27:57 +01:00
Stian Thorgersen faeff029fa Merge pull request #3664 from mstruk/admin-cli
KEYCLOAK-912 Admin CLI
2016-12-19 15:46:17 +01:00
Marek Posolda c6363aa146 Merge pull request #3630 from sldab/duplicate-email-support
KEYCLOAK-4059 Support for duplicate emails
2016-12-19 15:37:18 +01:00
Stian Thorgersen 2c70e53df6 Merge pull request #3670 from stianst/ssilvert-duplicate-groups
Ssilvert duplicate groups
2016-12-19 15:33:24 +01:00
Stian Thorgersen 81ab6aeeed Merge pull request #3667 from vmuzikar/nodejs-fixes
KEYCLOAK-4106 Enable Node.js UI Session test
2016-12-19 15:33:02 +01:00
Stian Thorgersen d1a528eb07 Merge pull request #3669 from vmuzikar/KEYCLOAK-3959
KEYCLOAK-3959 Fix User Federation Console UI Tests
2016-12-19 15:32:28 +01:00
Pedro Igor c9c9f05e29 [KEYCLOAK-4034] - Improvements to UI, performance and some code cleanup 2016-12-19 11:22:37 -02:00
Vaclav Muzikar 4e3e9ad5d4 KEYCLOAK-3959 Fix User Federation Console UI Tests 2016-12-19 13:37:31 +01:00
Stian Thorgersen 3bd3d0285d Merge branch 'duplicate-groups' of https://github.com/ssilvert/keycloak into ssilvert-duplicate-groups 2016-12-19 13:07:39 +01:00
Vaclav Muzikar 343e678f09 KEYCLOAK-4106 Enable Node.js UI Session test 2016-12-19 12:55:33 +01:00
Stian Thorgersen b8adfcad87 Merge pull request #3658 from hmlnarik/KEYCLOAK-4095--Not-Recently-Used-Password-Policy-with-value-set-to-1-doesn-t-work
KEYCLOAK-4095 Fix for expiring passwords
2016-12-19 12:15:26 +01:00
Stian Thorgersen ca3691e650 Merge pull request #3665 from stianst/KEYCLOAK-4092
KEYCLOAK-4092 key provider for HMAC signatures
2016-12-19 11:50:52 +01:00
Marko Strukelj ad11d6e76b KEYCLOAK-912 Admin CLI
- Fix relative URI resolution not working for https
2016-12-19 11:39:18 +01:00
Hynek Mlnarik 3e3216fb23 KEYCLOAK-4072 Add explicit check for key format 2016-12-19 11:01:45 +01:00
Slawomir Dabek 93cec9b3ee KEYCLOAK-4059 Support for duplicate emails 2016-12-19 10:55:12 +01:00
Stian Thorgersen 20c5c6b60c Merge pull request #3659 from abstractj/KEYCLOAK-4085
[KEYCLOAK-4083] and [KEYCLOAK-4085] SSSD federation provider should load libunix from alternative paths
2016-12-19 10:52:26 +01:00
Stian Thorgersen f29bb7d501 KEYCLOAK-4092 key provider for HMAC signatures 2016-12-19 10:50:43 +01:00
Marko Strukelj c3d9859c6e KEYCLOAK-912 Admin CLI 2016-12-19 01:05:03 +01:00
Bruno Oliveira 3b3b219a86 [KEYCLOAK-4085] SSSD federation provider should load libunix from alternative paths 2016-12-16 18:19:47 -02:00
Bruno Oliveira 3f2e9c3592 [KEYCLOAK-4083] SSSD Federation is only enabled with superuser permissions 2016-12-16 17:31:24 -02:00
Hynek Mlnarik 787a3f8fcc KEYCLOAK-4095 Fix for expiring passwords 2016-12-16 14:45:05 +01:00
Bill Burke a4cbf130b4 Merge pull request #3592 from sldab/default-hooks
KEYCLOAK-4074 Decoupling of default provider implementations
2016-12-16 08:42:55 -05:00
Bill Burke 1c0e23db66 Merge pull request #3647 from tkyjovsk/fix-module-names
fixed module names
2016-12-16 08:41:01 -05:00
Bill Burke f33a1e2143 Merge pull request #3650 from hmlnarik/KEYCLOAK-4079-OIDC-UserAttribute-protocol-mapper-always-adds-List-to-the-IDToken
KEYCLOAK-4079, KEYCLOAK-4080 Fix for single-valued claims
2016-12-16 08:40:26 -05:00
Bill Burke 63ca9b2fe8 Merge pull request #3653 from hmlnarik/KEYCLOAK-3971-set-encoding-explicitly
KEYCLOAK-3971 Explicitly set encoding for SAML message processing
2016-12-16 08:39:57 -05:00
Bill Burke 34f82fa1b1 KEYCLOAK-4072 2016-12-16 08:38:08 -05:00
Hynek Mlnarik 5453bec1bf KEYCLOAK-4079, KEYCLOAK-4080 Fix for single-valued claims 2016-12-16 10:00:36 +01:00
Marek Posolda e65dd4fbc3 Merge pull request #3655 from mposolda/master
KEYCLOAK-2397 LDAP_ENTRY_DN attribute in LDAP user storage is not upd…
2016-12-15 22:21:02 +01:00
Bill Burke 7b115b4b44 Merge pull request #3656 from patriot1burke/master
KEYCLOAK-4041
2016-12-15 16:07:55 -05:00
Bill Burke 4d64f0e160 KEYCLOAK-4041 2016-12-15 16:06:06 -05:00
mposolda 7453e96f5c KEYCLOAK-2397 LDAP_ENTRY_DN attribute in LDAP user storage is not updated on changes in LDAP 2016-12-15 21:12:29 +01:00
Stian Thorgersen 9be9d3f580 Merge pull request #3651 from stianst/KEYCLOAK-4081
KEYCLOAK-4081
2016-12-15 15:53:39 +01:00
Hynek Mlnarik 7d51df4eed KEYCLOAK-3971 Explicitly set encoding for SAML message processing 2016-12-15 14:04:34 +01:00
Michael Klein 74fd904bc4 KEYCLOAK-4088 Http wrapper of Angular 2 demo app doesn't forward http errors 2016-12-15 11:13:46 +01:00
Bill Burke 3c2a12d019 Merge pull request #3648 from patriot1burke/master
KEYCLOAK-3451
2016-12-14 15:46:24 -05:00
Bill Burke 56f9aa41d0 KEYCLOAK-3451 2016-12-14 15:04:53 -05:00
Tomas Kyjovsky e5d744f7d5 fixed module names 2016-12-14 17:02:07 +01:00
Stian Thorgersen 394676222f Merge pull request #3616 from sldab/fix-cors
KEYCLOAK-4047 WebOrigins not expanded in CORS handling of token endpoints
2016-12-14 15:13:49 +01:00
Pavel Drozd 5464655bc2 Merge pull request #3641 from tkyjovsk/KEYCLOAK-4060
KEYCLOAK-4060 Arquillian test deployments have redundant jboss module dependencies
2016-12-14 15:10:17 +01:00
Pavel Drozd 768c3eb9a7 Merge pull request #3636 from vramik/KEYCLOAK-3042
KEYCLOAK-3042 added missing test
2016-12-14 15:09:34 +01:00
Stian Thorgersen e316037910 KEYCLOAK-4081 2016-12-14 11:22:10 +01:00
Stian Thorgersen 97a08a1d99 Merge pull request #3644 from stianst/KEYCLOAK-4071
KEYCLOAK-4071
2016-12-14 09:55:55 +01:00
Stian Thorgersen db4420e10d Merge pull request #3640 from hmlnarik/KEYCLOAK-4040-Unable-to-import-SAML-metadata-with-OrganizationUrl
KEYCLOAK-4040 Support a letter-case variant of md:OrganizationURL
2016-12-14 08:25:45 +01:00
Stian Thorgersen 480d4e6f4f KEYCLOAK-4071 2016-12-14 07:01:54 +01:00
Marek Posolda 0b701b3cf9 Merge pull request #3642 from mposolda/master
KEYCLOAK-3921 LDAP binary attributes
2016-12-13 21:11:41 +01:00
mposolda 40216b5e7d KEYCLOAK-3921 LDAP binary attributes 2016-12-13 18:31:26 +01:00
Tomas Kyjovsky b1fe07ac3d KEYCLOAK-4060 removed redundant jboss module dependencies from test deployments 2016-12-13 16:21:45 +01:00
Hynek Mlnarik 642de06fb5 KEYCLOAK-4040 Support a letter-case variant of md:OrganizationURL 2016-12-13 16:07:11 +01:00
Slawomir Dabek 7ad028fcb1 KEYCLOAK-4074 Added hooks to default implementations of direct grant authenticators
and email sender.
2016-12-13 15:32:39 +01:00
Pavel Drozd 76385157fc Merge pull request #3634 from tkyjovsk/KEYCLOAK-4061
KEYCLOAK-4061 Testsuite URLProvider not working right on remote EAP6/AS7 app server
2016-12-13 14:05:05 +01:00
Stian Thorgersen c11f65720b Merge pull request #3639 from hmlnarik/KEYCLOAK-4062-Provide-GUI-for-KeyName-format-in-identity-broker-and-client
KEYCLOAK-4062 - GUI changes for KeyName format + few tests
2016-12-13 11:33:16 +01:00
Hynek Mlnarik 5006fe2292 KEYCLOAK-4062 - GUI changes for KeyName format + few tests 2016-12-12 22:29:01 +01:00
Bill Burke 90fdb4889c Merge pull request #3638 from patriot1burke/master
restore adapter tests in travis
2016-12-12 11:37:28 -05:00
Bill Burke c17a57d76c restore adapter tests in travis 2016-12-12 10:36:33 -05:00
Marek Posolda efcb749771 Merge pull request #3637 from mposolda/master
KEYCLOAK-2545 KEYCLOAK-3668 KEYCLOAK-3247 LDAP escaping
2016-12-12 14:09:32 +01:00
mposolda 8c99a13387 Minor synchronize update 2016-12-12 13:09:19 +01:00
mposolda 79c1650c15 KEYCLOAK-2545 KEYCLOAK-3668 KEYCLOAK-3247 LDAP escaping 2016-12-12 13:09:14 +01:00
Vlasta Ramik 63ddabe5fb KEYCLOAK-3042 added missing test 2016-12-12 10:47:40 +01:00
Bill Burke 5448403345 Merge pull request #3635 from patriot1burke/master
KEYCLOAK-3506
2016-12-10 19:15:27 -05:00
Bill Burke 5996149a8d KEYCLOAK-3506 2016-12-10 17:01:08 -05:00
Bill Burke 62029e8a33 KEYCLOAK-3506 2016-12-10 11:59:29 -05:00
Pedro Igor 588e1711dd Merge pull request #3597 from jlpettersson/KEYCLOAK-4018
KEYCLOAK-4018 Client-Based Policy
2016-12-09 17:32:19 -02:00
Jonas Pettersson 35c4a379ad KEYCLOAK-4018 Use clientId and not the client name 2016-12-09 19:33:27 +01:00
Tomas Kyjovsky cf62715499 KEYCLOAK-4061 fixed testsuite URLProvider for AS7/EAP6 app server (managed and remote mode) 2016-12-09 17:41:07 +01:00
Bill Burke 1bfdff0e25 Merge pull request #3614 from vramik/KEYCLOAK-4031
KEYCLOAK-4031 fix testBasicMappingMultipleValues
2016-12-09 09:10:03 -05:00
Bill Burke ba14b9d942 Merge pull request #3626 from mhajas/KEYCLOAK-4044
KEYCLOAK-4044 Fix failing adapter tests
2016-12-09 09:09:41 -05:00
Bill Burke 10fc7302eb Merge pull request #3632 from hmlnarik/KEYCLOAK-4057-MS-AD-FS-does-not-recognize-certificate-for-POST-signed-AuthnRequest-for-brokering
KEYCLOAK-4057 Do not include KeyName for brokered IdPs
2016-12-09 09:09:13 -05:00
Bill Burke 3bea8f4adb Merge pull request #3631 from patriot1burke/master
KEYCLOAK-3967
2016-12-09 09:07:56 -05:00
Hynek Mlnarik 24a36e6848 KEYCLOAK-4057 Do not include KeyName for brokered IdPs
Active Directory Federation Services require that the subject name
matches KeyName element when present. While KeyName is beneficial for
Keycloak adapters, it breaks functionality for AD FS as the name
included there is a key ID, not certificate subject expected by AD FS.

This patch contains functionality that excludes KeyName from SAML
messages to identity providers. This behaviour should be made
configurable per client/identity provider and is prepared to do so,
however actual GUI changes are left for a separate patch.
2016-12-09 14:33:40 +01:00
Jonas Pettersson 5d070cbf22 KEYCLOAK-4018 Added test for Client-Based Policy 2016-12-09 14:23:33 +01:00
Jonas Pettersson 5e660977aa KEYCLOAK-4018 Use kc.client.id instead of clientId 2016-12-09 14:22:06 +01:00
Bill Burke 1f0600044a KEYCLOAK-3967 2016-12-08 19:29:02 -05:00
Bill Burke d3e3990d77 Merge pull request #3629 from patriot1burke/master
KEYCLOAK-2806
2016-12-08 17:36:28 -05:00
Bill Burke 4a80f1e913 Merge remote-tracking branch 'upstream/master' 2016-12-08 17:05:46 -05:00
Bill Burke 0550bdb467 KEYCLOAK-3214 2016-12-08 16:47:17 -05:00
Bill Burke 5f07fa8057 KEYCLOAK-2806 2016-12-08 16:28:22 -05:00
Marek Posolda 10064fdac9 Merge pull request #3628 from mposolda/master
KEYCLOAK-4058 Improve LDAPStorageMapper and remove LDAPStorageMapperB…
2016-12-08 19:36:25 +01:00
mposolda e7f6c780e2 KEYCLOAK-4058 Improve LDAPStorageMapper and remove LDAPStorageMapperBridge 2016-12-08 18:35:56 +01:00
Marek Posolda e03b72df00 Merge pull request #3627 from mposolda/master
KEYCLOAK-4049 Admin Console: User Federation: Client ids not listed i…
2016-12-08 15:02:32 +01:00
mposolda 7d8b392fd9 KEYCLOAK-4049 Admin Console: User Federation: Client ids not listed in role-ldap-mapper 2016-12-08 13:46:19 +01:00
Marek Posolda afa8dc735d Merge pull request #3625 from mhajas/KEYCLOAK-3339
KEYCLOAK-3339 Fix authorization tests on EAP6 + JDK7
2016-12-08 11:42:11 +01:00
Marek Posolda d49a74b927 Merge pull request #3624 from mhajas/KEYCLOAK-4051
KEYCLOAK-4051 Use debug instead of debugf
2016-12-08 11:40:27 +01:00
mhajas ae36b3c832 KEYCLOAK-4044 Fix failing adapter tests 2016-12-08 09:52:20 +01:00
mhajas e0c62e25b2 KEYCLOAK-3339 Fix authorization tests on EAP6 + JDK7 2016-12-08 09:50:14 +01:00
mhajas 081958e282 KEYCLOAK-4051 Use debug instead of debugf 2016-12-08 09:42:52 +01:00
Bill Burke 379d5e3228 Merge pull request #3623 from patriot1burke/master
KEYCLOAK-3973
2016-12-07 17:00:52 -05:00
Bill Burke 9b18601102 KEYCLOAK-3973 2016-12-07 16:10:33 -05:00
Stan Silvert 7868152ffe Merge pull request #3622 from vramik/KEYCLOAK-4022
KEYCLOAK-4022 added missing test
2016-12-07 14:10:13 -05:00
Bill Burke 223cc1fb50 KEYCLOAK-3973 2016-12-07 12:56:03 -05:00
Vlasta Ramik 6ae9d19843 KEYCLOAK-4022 added missing test 2016-12-07 16:22:08 +01:00
Bill Burke cbe4ff324c Merge pull request #3621 from patriot1burke/master
fix adapter test
2016-12-07 10:00:00 -05:00
Bill Burke b8c06dd560 fix adapter test 2016-12-07 09:50:17 -05:00
Bill Burke 31d2cde6e5 Merge pull request #3615 from abstractj/KEYCLOAK-3560
[KEYCLOAK-3560]: Unable to import exported users which contain terms_and_conditions required action
2016-12-06 22:07:58 -05:00
Bill Burke 75e2b404c8 Merge pull request #3618 from abstractj/KEYCLOAK-3685
[KEYCLOAK-3685]: Username not updated when "Email as username" is enabled
2016-12-06 22:06:55 -05:00
Bill Burke d163dad3fe Merge pull request #3620 from patriot1burke/master
KEYCLOAK-3509
2016-12-06 20:08:36 -05:00
Bill Burke 7271fdaaaa KEYCLOAK-3509 2016-12-06 18:52:37 -05:00
Bill Burke 03fbb3c853 Merge pull request #3619 from patriot1burke/master
KEYCLOAK-2705
2016-12-06 18:46:59 -05:00
Bill Burke 68c8bfa0e1 KEYCLOAK-2705 2016-12-06 17:32:41 -05:00
Bill Burke f34b47d29c Merge pull request #3617 from patriot1burke/master
KEYCLOAK-2654
2016-12-06 17:06:10 -05:00
Bill Burke a0b54ebedc KEYCLOAK-2654 2016-12-06 17:05:34 -05:00
Bruno Oliveira ddb201db6c [KEYCLOAK-3685]: Username not updated when "Email as username" is enabled 2016-12-06 19:46:31 -02:00
Slawomir Dabek 4069be3ff6 KEYCLOAK-4047 Expand + to valid WebOrigins in Cors class 2016-12-06 20:22:35 +01:00
Bruno Oliveira 15f23eb045 [KEYCLOAK-3560]: Unable to import exported users which contain terms_and_conditions required action 2016-12-06 15:29:56 -02:00
Bill Burke 77d17de14d Merge pull request #3611 from patriot1burke/master
KEYCLOAK-3620
2016-12-06 08:18:36 -05:00
Bill Burke bab08bf8f0 Merge remote-tracking branch 'upstream/master' 2016-12-06 08:18:05 -05:00
Vlasta Ramik 0d110ceb30 KEYCLOAK-4031 fix testBasicMappingMultipleValues 2016-12-06 14:11:24 +01:00
Marek Posolda 9cd3034762 Merge pull request #3613 from mposolda/master
KEYCLOAK-4042 Better error message when failed updating MSAD password…
2016-12-06 11:50:33 +01:00
mposolda ba51640c61 KEYCLOAK-4042 Better error message when failed updating MSAD password in account mgmt 2016-12-06 11:07:28 +01:00
Marek Posolda 287593d75f Merge pull request #3612 from hmlnarik/KEYCLOAK-3655-Unexpected-server-error-when-adding-duplicate-auth-flow
KEYCLOAK-3655 Tests for adding duplicate auth flow
2016-12-06 10:27:15 +01:00
Marek Posolda 3826e933c1 Merge pull request #3609 from hmlnarik/KEYCLOAK-3439-database-encoding
KEYCLOAK-4026 - Workaround for liquibase error in MySQL/MariaDB
2016-12-06 10:25:08 +01:00
Marek Posolda 6b1020ec34 Merge pull request #3602 from sldab/fix-model-duplicate-exception
KEYCLOAK-4028 Fix ModelDuplicateException when logging in with updated email address
2016-12-06 10:21:55 +01:00
Marek Posolda c8b22e71f0 Merge pull request #3573 from glavoie/KEYCLOAK-4003
KEYCLOAK-4003: Slow Infinispan RoleAdapter.hasRole() call.
2016-12-06 09:49:42 +01:00
Hynek Mlnarik 41a5598103 KEYCLOAK-3655 Tests for adding duplicate auth flow 2016-12-06 08:52:38 +01:00
Bill Burke fc92639d3f KEYCLOAK-3620 2016-12-05 17:52:00 -05:00
Bill Burke 6587cd2478 KEYCLOAK-3620 2016-12-05 17:51:06 -05:00
Stan Silvert e55c2ae554 Merge pull request #3610 from ssilvert/disable-confidential-tab
KEYCLOAK-4039: Unexpected behavior when switching client access type.
2016-12-05 15:30:39 -05:00
Bill Burke 693d6c0e5d Merge pull request #3608 from hmlnarik/KEYCLOAK-4035
KEYCLOAK-4035 Composite roles need to be expanded in SAML attribute mapper
2016-12-05 14:44:21 -05:00
Bill Burke 952c1decf0 Merge pull request #3607 from patriot1burke/master
KEYCLOAK-4033
2016-12-05 14:44:07 -05:00
Stan Silvert f3dbacabf8 KEYCLOAK-4039: Unexpected behavior when switching client access type. 2016-12-05 14:16:24 -05:00
Hynek Mlnarik 819105c3aa KEYCLOAK-4026 - Workaround for liquibase error in MySQL/MariaDB 2016-12-05 16:48:52 +01:00
Bill Burke 06affc0700 Merge pull request #3595 from dehort/KEYCLOAK-4020
Modified the saml parser to handle boolean attribute value types
2016-12-05 10:19:30 -05:00
Bill Burke f03d79c7d3 Merge pull request #3603 from thomasdarimont/issue/KEYCLOAK-3969-Allow-authentication-via-ScriptAuthenticator-without-user
KEYCLOAK-3969 Allow use of ScriptAuthenticator without user
2016-12-05 10:19:02 -05:00
Bill Burke b52936bc5b Merge pull request #3604 from hmlnarik/KEYCLOAK-3950-NPE-when-request-includes-NameIDPolicy-but-format-is-missing
KEYCLOAK-3950 Fix NPE on request for NameIDPolicy without format
2016-12-05 10:17:04 -05:00
Hynek Mlnarik 3c4114091f KEYCLOAK-4035 Composite roles need to be expanded in SAML attribute mapper 2016-12-05 16:16:08 +01:00
Bill Burke d354aa1f62 KEYCLOAK-4033 2016-12-05 10:15:55 -05:00
Slawomir Dabek 45fd114143 KEYCLOAK-4028 Fix ModelDuplicateException when logging in with updated email address 2016-12-05 15:44:22 +01:00
Marek Posolda 32da5fea0a Merge pull request #3572 from glavoie/KEYCLOAK-4002
KEYCLOAK-4002: realmRevisions cache too small with high number of realms
2016-12-05 15:26:10 +01:00
Gabriel Lavoie 32c23c2410 KEYCLOAK-4002: realmRevisions cache too small with high number of realms.
- Increased the hardcoded default value to help running master with high number of realms.
- Added a value computation based on the realms cache max size (to match the userRevisions cache configuration pattern).
- Computed revisions cache size is now 2 times the configured maximum cache size.
- Added a maximum realms cache size configuration to the different standalone.xml templates.
- Added a missing users cache size configuration to standalone.xsl.
2016-12-05 08:07:24 -05:00
Marek Posolda 802085f158 Merge pull request #3606 from vramik/KEYCLOAK-4027
KEYCLOAK-4027 Make AbstractTests really abstract in testsuite
2016-12-05 12:45:47 +01:00
Vlasta Ramik 773c88cc04 KEYCLOAK-4027 Make AbstractTests really abstract in testsuite 2016-12-05 12:03:05 +01:00
Hynek Mlnarik 197f51e50f KEYCLOAK-3950 Fix NPE on request for NameIDPolicy without format
... and two more one-line issues
2016-12-05 07:24:38 +01:00
l-robinson 1c66ce7dd7 Additional test case added to check the text in the 'Back to application' link 2016-12-05 12:13:30 +10:30
Thomas Darimont 8610a02d72 KEYCLOAK-3969 Allow use of ScriptAuthenticator without user
Previously ScriptAuthenticator required a user to be authenticated
before it could be used as an additional authentication step which
limited the scenarios the authenticator could be used.

We now allow ScriptAuthenticators to be used without requiring an
user to be authenticated before.
Adapted the authenticator-template.js with a null safe username check.

Note that existing custom ScriptAuthenticators might need some additional
null checks since the user can now be undefined.
2016-12-04 23:15:53 +01:00
Bill Burke d7df86d6d0 Merge pull request #3526 from mhajas/KEYCLOAK-3017
KEYCLOAK-3017 Location header not present in responses from admin endpoints test
2016-12-03 13:47:15 -05:00
Bill Burke e3d0f8f6e5 Merge pull request #3548 from sebastienblanc/KEYCLOAK-3725
KEYCLOAK-3725: return Unauthorized when accessing bearer only in inte…
2016-12-03 13:46:52 -05:00
Bill Burke e8f2527fcd Merge pull request #3555 from vramik/KEYCLOAK-3977
KEYCLOAK-3977 fix logicalFilePath for jpa-changelog-1.0.0.Final-db2.xml
2016-12-03 13:44:54 -05:00
Bill Burke 305dcb2b1e Merge pull request #3552 from hmlnarik/KEYCLOAK-3439-database-encoding
KEYCLOAK-3439, KEYCLOAK-3893, KEYCLOAK-3894 - Support for Unicode
2016-12-03 13:44:10 -05:00
Bill Burke 0ab352706b Merge pull request #3554 from hassaneinaltememyictu/2.3.0-ictu-change-role-attributeToRoleMapper
grant the new role from the saml token if it exist
2016-12-03 13:43:40 -05:00
Bill Burke eac0bb4b37 Merge pull request #3574 from tkyjovsk/remote-adapter-tests
Added remote jboss adapter tests.
2016-12-03 13:38:07 -05:00
Bill Burke 3bc721720f Merge pull request #3580 from abstractj/KEYCLOAK-3970
[KEYCLOAK-3970] - SSSD testsuite is broken
2016-12-03 13:37:48 -05:00
Bill Burke 54758b800b Merge pull request #3585 from abstractj/KEYCLOAK-4011
[KEYCLOAK-4011] - Integrity constraint error when try to delete SSSD Federation Provider
2016-12-03 13:37:36 -05:00
Bill Burke 6cd6edce64 Merge pull request #3588 from abstractj/KEYCLOAK-3847
[KEYCLOAK-2568]
2016-12-03 13:37:06 -05:00
Bill Burke 69a1d4d192 Merge pull request #3587 from tkyjovsk/KEYCLOAK-4017
KEYCLOAK-4017 Adapter tests are broken because of removed AbstractKerberosStandaloneAdapterTest class
2016-12-03 13:35:51 -05:00
Bill Burke 5d4864b82d Merge pull request #3590 from tkyjovsk/performance-tests
fixed version of integration-arquillian-tests-adapters-remote module
2016-12-03 13:35:28 -05:00
Bill Burke 3840aed5f7 Merge pull request #3594 from hmlnarik/KEYCLOAK-3971-SAML-Authentication-signature-verification-exception-when-user-name-contains-european-special-characters
KEYCLOAK-3971 Tests for Unicode (ext Latin) usernames in SAML
2016-12-03 13:35:11 -05:00
Bill Burke 6a629aec0c Merge pull request #3601 from patriot1burke/master
component query and remove provider alis fix
2016-12-03 13:33:41 -05:00
Bill Burke 8b4bb72fb3 enhance user storage jpa example 2016-12-03 13:33:16 -05:00
Bill Burke 88d08c4f38 component query and remove provider alis fix 2016-12-03 11:34:48 -05:00
Bill Burke e3f5df3894 Merge pull request #3600 from patriot1burke/master
KEYCLOAK-3986
2016-12-03 10:14:59 -05:00
Bill Burke cfbd7d469f Merge remote-tracking branch 'upstream/master' 2016-12-03 09:33:58 -05:00
Bill Burke 8fd7091068 KEYCLOAK-3986 2016-12-03 09:33:52 -05:00
Stan Silvert 9c97245c46 Merge pull request #3598 from ssilvert/client-service-account-roles-tab
KEYCLOAK-4022: Server error when click Service Account Roles
2016-12-03 07:00:54 -05:00
Bill Burke 257aba4331 Merge pull request #3599 from patriot1burke/master
User Storage SPI Javadocs and examples
2016-12-02 21:20:45 -05:00
Bill Burke 672e1b3575 oops 2016-12-02 20:14:01 -05:00
Bill Burke ce50b0ed29 Merge remote-tracking branch 'upstream/master' 2016-12-02 19:26:34 -05:00
Bill Burke e88af874ca finish 2016-12-02 19:25:17 -05:00
Stan Silvert aed54439c2 KEYCLOAK-4022: Remove unneeded line of code. 2016-12-02 18:31:44 -05:00
Stan Silvert c8c6e36fd9 KEYCLOAK-4022: Server error when click Service Account Roles 2016-12-02 18:17:15 -05:00
Marek Posolda e6ace84101 Merge pull request #3596 from mposolda/master
KEYCLOAK-4021 Travis didn't run all tests
2016-12-02 22:59:58 +01:00
mposolda 815b5e5f34 KEYCLOAK-4021 Travis didn't run all tests 2016-12-02 21:56:40 +01:00
Derek Horton c149358028 Modified the saml parser to handle boolean attribute value types
[KEYCLOAK-4020]
2016-12-02 14:50:36 -06:00
Marek Posolda b1265f6d70 Merge pull request #3593 from mposolda/master
KEYCLOAK-3340 Service Account user not renamed when renaming client-id
2016-12-02 21:34:28 +01:00
Hynek Mlnarik a09e78873e KEYCLOAK-3971 Tests for Unicode (ext Latin) usernames in SAML 2016-12-02 21:19:32 +01:00
mposolda 17d8394ab6 KEYCLOAK-3340 Service Account user not renamed when renaming client-id 2016-12-02 18:13:29 +01:00
Marek Posolda e6a20aa44b Merge pull request #3589 from mposolda/master
KEYCLOAK-3701 NullPointerException when trying to get access token fr…
2016-12-02 17:53:21 +01:00
Marek Posolda 458ca8a7ee Merge pull request #3578 from sldab/msadlds
KEYCLOAK-4009 Compatibility with AD LDS
2016-12-02 17:50:21 +01:00
Jonas Pettersson b56e23eded KEYCLOAK-4018 Client-Based Policy 2016-12-02 16:48:47 +01:00
Tomas Kyjovsky d02c9c2150 fixed version of integration-arquillian-tests-adapters-remote module 2016-12-02 16:39:59 +01:00
mposolda cccb532a21 KEYCLOAK-3701 NullPointerException when trying to get access token from offline token 2016-12-02 16:35:21 +01:00
Bruno Oliveira 5c2bf7c822 [KEYCLOAK-2568] 2016-12-02 13:14:05 -02:00
Tomas Kyjovsky e8758a77fb Removed classes extending a non-existent AbstractKerberosStandaloneAdapterTest. 2016-12-02 15:01:31 +01:00
Slawomir Dabek b2f0acfe26 KEYCLOAK-4009 Compatibility with AD LDS 2016-12-02 14:43:42 +01:00
Stian Thorgersen 8842d88058 Merge pull request #3562 from ssilvert/overwrite-client-role-fails
KEYCLOAK-3042: NPE when trying to overwrite client role
2016-12-02 14:06:27 +01:00
Stian Thorgersen 739178d840 Merge pull request #3583 from stianst/KEYCLOAK-3733
KEYCLOAK-3733 Added tests for max results in paginated endpoints
2016-12-02 14:02:35 +01:00
Stian Thorgersen 2454b3b644 Merge pull request #3586 from danren/KEYCLOAK-3961
Fix for KEYCLOAK-3961
2016-12-02 13:52:01 +01:00
danren 87b243ed59 Fix for KEYCLOAK-3961 2016-12-02 13:30:53 +01:00
Stian Thorgersen cec6f5db14 Merge pull request #3584 from stianst/KEYCLOAK-4014
KEYCLOAK-4014 Add source for all js libs
2016-12-02 11:20:04 +01:00
Bruno Oliveira e7dd49b453 [KEYCLOAK-4011] - Integrity constraint error when try to delete SSSD Federation Provider 2016-12-02 06:52:29 -02:00
Stian Thorgersen 6fdc470b0b KEYCLOAK-4014 Add source for all js libs 2016-12-02 08:58:38 +01:00
Stian Thorgersen 695aa7bec9 KEYCLOAK-3733 Added tests for max results in paginated endpoints 2016-12-02 08:25:46 +01:00
Stian Thorgersen 3952dba094 Merge pull request #3582 from stianst/KEYCLOAK-3835
KEYCLOAK-3835 Remove redirect on flow and return not modified if page…
2016-12-02 08:24:12 +01:00
Stian Thorgersen 209f8155d1 KEYCLOAK-3835 Remove redirect on flow and return not modified if page is refreshed 2016-12-02 06:29:59 +01:00
Stian Thorgersen 8621733e17 Merge pull request #3292 from manuel-palacio/master
KEYCLOAK-3648: Support for handling multi-value attributes in SAML attribute mapper/importer
2016-12-02 06:11:29 +01:00
Stan Silvert 621301862c Merge pull request #3581 from ssilvert/bradcrumbs-idps
KEYCLOAK-4012: Missing idp name from breadcrumb navigation
2016-12-01 20:53:18 -05:00
Stan Silvert fd4c5a90ed KEYCLOAK-4012: Missing idp name from breadcrumb navigation 2016-12-01 20:18:43 -05:00
Manuel Palacio bfec073457 KEYCLOAK-3648 2016-12-01 19:34:33 +01:00
Bruno Oliveira dc6e869c64 [KEYCLOAK-3970] - SSSD testsuite is broken 2016-12-01 15:40:53 -02:00
Marek Posolda bed592460d Merge pull request #3579 from mposolda/master
KEYCLOAK-3824 Ensure sending notBefore invalidates JWKPublicKeyLocator
2016-12-01 17:45:55 +01:00
Hynek Mlnarik 46d3555798 KEYCLOAK-3439, KEYCLOAK-3893, KEYCLOAK-3894 - Support for Unicode
Treatment of Unicode characters varies among databases. This change
adds support for Unicode characters in the following fields:

* Realms: display name, HTML display name
* Users: username, given name, last name, attribute values
* Groups: name, attribute values
* Components: attribute values
* Roles: name
* Descriptions of objects

Unicode support for the rest of the fields depends on database vendor
and is described in the installation guide in more detail.
2016-12-01 17:23:58 +01:00
mposolda 74967737ee KEYCLOAK-3824 Ensure sending notBefore invalidates JWKPublicKeyLocator 2016-12-01 17:07:50 +01:00
mhajas a347cb591d KEYCLOAK-3017 Location header not present in responses from admin endpoints 2016-12-01 15:33:53 +01:00
Marek Posolda 1ae60ef8a7 Merge pull request #3577 from mposolda/master
KEYCLOAK-3823 KEYCLOAK-3824 Added public-key-cache-ttl for OIDC adapt…
2016-12-01 13:28:05 +01:00
Stian Thorgersen f9db687385 Merge pull request #3576 from stianst/KEYCLOAK-4006
KEYCLOAK-4006 Fix performance drop caused by changes to client sessio…
2016-12-01 12:44:45 +01:00
mposolda a38544796f KEYCLOAK-3823 KEYCLOAK-3824 Added public-key-cache-ttl for OIDC adapters. Invalidate cache when notBefore sent 2016-12-01 12:25:07 +01:00
Stian Thorgersen 5ecc8d1c71 KEYCLOAK-4006 Fix performance drop caused by changes to client session codes 2016-12-01 12:17:54 +01:00
Stian Thorgersen c9cf7f6564 Merge pull request #3549 from RamonGebben/patch-1
KEYCLOAK-3993: Removed compare bug in `checkState` function
2016-12-01 07:57:29 +01:00
Stian Thorgersen ba406d5747 Merge pull request #3332 from ebondu/master
fix bug https://issues.jboss.org/browse/KEYCLOAK-3474
2016-12-01 07:51:07 +01:00
l-robinson c72ceadfce KEYCLOAK-4004 Pass the client name in the ReferrerBean instead of the referrer parameter 2016-12-01 17:17:57 +10:30
Stian Thorgersen 1e7f1b1e54 Merge pull request #3570 from stianst/master
Bump to 2.5.0.Final-SNAPSHOT
2016-12-01 06:36:37 +01:00
Stian Thorgersen 7c0f6f6e6e Merge pull request #3571 from stianst/KEYCLOAK-3889
KEYCLOAK-3889 Add produces to server info endpoint
2016-12-01 06:36:12 +01:00
Tomas Kyjovsky 3f32cb154b Added remote jboss adapter tests. 2016-11-30 19:58:54 +01:00
Gabriel Lavoie 6fa504489f KEYCLOAK-4003: Slow Infinispan RoleAdapter.hasRole() call.
- Added a session/query cache for the result getComposites() to avoid always hitting the Infinispan cache.
- KeycloakModelUtils doesn't rely anymore on a "visited" set as performance seems good without it.
- Added test for multiple levels of composite roles. Only one level was covered.
2016-11-30 10:56:26 -05:00
Stian Thorgersen 433f373f60 KEYCLOAK-3889 Add produces to server info endpoint 2016-11-30 15:46:01 +01:00
Stian Thorgersen b771b84f56 Bump to 2.5.0.Final-SNAPSHOT 2016-11-30 15:44:51 +01:00
Marek Posolda 45abaec86e Merge pull request #3569 from mposolda/master
KEYCLOAK-3831 Improve AddressMapper configurability. Support for 'for…
2016-11-30 13:44:18 +01:00
mposolda d0a96d463d KEYCLOAK-3831 Improve AddressMapper configurability. Support for 'formatted' subclaim 2016-11-30 13:04:45 +01:00
Marek Posolda 12f1aedcd1 Merge pull request #3568 from mposolda/master
KEYCLOAK-3998 JS error in admin console when creating broker mapper
2016-11-30 10:58:33 +01:00
mposolda f0874bf585 KEYCLOAK-3998 JS error in admin console when creating broker mapper 2016-11-30 09:29:42 +01:00
Marek Posolda 1a749dc7b7 Merge pull request #3567 from mposolda/master
KEYCLOAK-3997 InfinispanKeyStorageProviderTest was failing
2016-11-30 09:28:19 +01:00
mposolda ec49d10007 KEYCLOAK-3997 InfinispanKeyStorageProviderTest was failing 2016-11-30 08:38:35 +01:00
Bill Burke 294dc6fbd0 Merge pull request #3566 from patriot1burke/master
UserBulkUpdateProvider interface
2016-11-29 20:18:07 -05:00
Bill Burke 9e50a45b4c UserBulkUpdateProvider interface 2016-11-29 18:43:22 -05:00
Bill Burke 72ffb9dbb9 Merge pull request #3564 from patriot1burke/master
KEYCLOAK-3903 KEYCLOAK-3960
2016-11-29 18:05:11 -05:00
Bill Burke a677ab64e3 Merge remote-tracking branch 'upstream/master' 2016-11-29 16:43:24 -05:00
Bill Burke b33afcd47c KEYCLOAK-3903 KEYCLOAK-3960 2016-11-29 16:43:06 -05:00
Marek Posolda 659892edcb Merge pull request #3563 from mposolda/undertow-adapter-tests
KEYCLOAK-3124 Possibility test adapter on embedded undertow
2016-11-29 22:41:48 +01:00
mposolda 803fde6c1d KEYCLOAK-3124 Possibility test adapter on embedded undertow 2016-11-29 22:08:23 +01:00
Stan Silvert 83063a5740 KEYCLOAK-3042: NPE when trying to overwrite client role 2016-11-29 15:43:48 -05:00
Bill Burke 7efa3a3ddf Merge remote-tracking branch 'upstream/master' 2016-11-29 11:34:04 -05:00
Pavel Drozd c1d93e251d Merge pull request #3542 from mhajas/KEYCLOAK-1881
KEYCLOAK-1881 Fix SAML Filter key rotation tests
2016-11-29 16:40:59 +01:00
Pavel Drozd 8f3256675a Merge pull request #3534 from tkyjovsk/KEYCLOAK-3683
KEYCLOAK-3683 Updated OIDC adapter test for secure-deployments
2016-11-29 16:40:24 +01:00
Pavel Drozd 9711ac2ecb Merge pull request #3523 from vmuzikar/KEYCLOAK-3872-2
KEYCLOAK-3872 Stabilize PasswordPolicy UI test
2016-11-29 16:38:39 +01:00
Pavel Drozd 833c56e17b Merge pull request #3508 from mhajas/KEYCLOAK-3653
KEYCLOAK-3653 Tests for cert endpoint
2016-11-29 16:37:44 +01:00
Pavel Drozd 9bb59c0f94 Merge pull request #3496 from tkyjovsk/performance-tests
Updated performance tests. Added app-profile-jee test application from qs.
2016-11-29 16:37:17 +01:00
Pavel Drozd 629ec6383e Merge pull request #3492 from pdrozd/KEYCLOAK-3892
KEYCLOAK-3892 - Fix profile page assertion.
2016-11-29 16:35:42 +01:00
Stian Thorgersen a6b6ecf4ba Merge pull request #3560 from ssilvert/scheduled-task-interval
KEYCLOAK-3920: Configured scheduled-task-interval doesn't work.
2016-11-29 10:51:00 +01:00
Ramon Gebben e5ce080fd3 Update with PR feedback 2016-11-29 09:49:58 +01:00
Marek Posolda 80c4b2aa31 Merge pull request #3556 from mposolda/master
KEYCLOAK-3822 Changing signature validation settings of an external I…
2016-11-28 22:37:44 +01:00
Stan Silvert 0b8f9edb9e KEYCLOAK-3920: Configured scheduled-task-interval doesn't work. 2016-11-28 14:10:55 -05:00
Bill Burke 63458a7de7 Merge pull request #3559 from patriot1burke/master
KEYCLOAK-3980
2016-11-28 13:36:52 -05:00
Bill Burke f6a080729a javadoc 2016-11-28 12:25:54 -05:00
Bill Burke 1dacddb7e3 KEYCLOAK-3980 2016-11-28 12:20:40 -05:00
Bill Burke 334aa37b7f Merge pull request #3553 from hmlnarik/KEYCLOAK-3731-alternative
KEYCLOAK-3731 Provide functionality for IdP-initiated SSO for broker
2016-11-28 11:23:26 -05:00
Stan Silvert 725f42e185 Merge pull request #3533 from ssilvert/federation-blank-slate-showing
KEYCLOAK-3949: User Federation "welcome" screen is always shown for a
2016-11-28 11:06:59 -05:00
mposolda 69ce1e05f0 KEYCLOAK-3822 Changing signature validation settings of an external IdP is not sometimes reflected 2016-11-28 15:27:25 +01:00
Vlasta Ramik 8d3136188d KEYCLOAK-3977 fix logicalFilePath for jpa-changelog-1.0.0.Final-db2.xml 2016-11-28 14:52:09 +01:00
Stian Thorgersen cb4f856ab6 Merge pull request #3535 from wadahiro/update-japanese-translation
KEYCLOAK-3957 Update Japanese translation
2016-11-28 14:50:01 +01:00
Hynek Mlnarik 65b269cd54 KEYCLOAK-3731 Provide functionality for IdP-initiated SSO for broker
A SAML brokered IdP can send unsolicited login response to the broker.
This commit adds a new GET/POST endpoint under [broker SAML
endpoint]/clients/{client_id}. Broken will respond to  submission to
this new endpoint by looking up a SAML client with URL name equal to
client_id, and if found, it performs IdP-initiated SSO to that client.
2016-11-28 13:54:04 +01:00
sebastienblanc df93244373 keep orignal API 2016-11-26 09:30:27 +01:00
Marek Posolda a8de125e26 Merge pull request #3551 from vramik/KEYCLOAK-3983
KEYCLOAK-3983 update protocol mappers of clients and client templates for backward compatibility import
2016-11-25 21:48:41 +01:00
Marek Posolda 7db06b8afb Merge pull request #3550 from mposolda/master
KEYCLOAK-3825 Ability to expire publicKeys cache. Migrated OIDCBroker…
2016-11-25 20:23:57 +01:00
mposolda 7c6032cc84 KEYCLOAK-3825 Ability to expire publicKeys cache. Migrated OIDCBrokerWithSignatureTest to new testsuite 2016-11-25 17:45:37 +01:00
Vlasta Ramik 939da455d7 update protocol mappers of clients and client templates for backward compatibility import 2016-11-25 15:12:38 +01:00
Marek Posolda 817dbce391 Merge pull request #3547 from mposolda/master
KEYCLOAK-3982 keycloak-jboss-adapter-core module.xml unsynced among W…
2016-11-25 13:18:24 +01:00
sebastienblanc 0f447fadd4 KEYCLOAK-3725: return Unauthorized when accessing bearer only in interactive mode 2016-11-25 11:59:52 +01:00
Ramon Gebben 79825dfa1d Removed compare bug in checkState function 2016-11-25 11:45:40 +01:00
mposolda b640e9fe39 KEYCLOAK-3982 keycloak-jboss-adapter-core module.xml unsynced among Wildfly OIDC and SAML adapter ZIPs 2016-11-25 11:04:24 +01:00
Marek Posolda 9dd4cbb40e Merge pull request #3546 from mposolda/master
KEYCLOAK-3956 Update fuse documentation
2016-11-24 16:48:56 +01:00
mposolda 82423db239 KEYCLOAK-3956 Update fuse documentation 2016-11-24 15:55:44 +01:00
Marek Posolda 0262b64062 Merge pull request #3544 from hmlnarik/KEYCLOAK-3648-test
KEYCLOAK-3648 - Tests for UserAttributeMapper broker mapper
2016-11-24 13:31:17 +01:00
Hynek Mlnarik bd920b8ba9 KEYCLOAK-3648 - Tests for UserAttributeMapper broker mapper 2016-11-24 07:50:22 +01:00
Bill Burke 57da86c598 Merge pull request #3545 from patriot1burke/master
remove UserFederation SPI
2016-11-23 18:41:09 -05:00
Bill Burke cd92cc504b fix pom 2016-11-23 17:08:24 -05:00
Bill Burke e82e584b81 port removed migrators 2016-11-23 16:48:02 -05:00
Bill Burke ccbd8e8c70 remove User Fed SPI 2016-11-23 16:06:44 -05:00
Tomas Kyjovsky e396261399 fixed versions of 2 modules 2016-11-23 15:56:46 +01:00
Tomas Kyjovsky aae368f1e7 Added parameter check to WaitUtils.pause() 2016-11-23 15:52:41 +01:00
Tomas Kyjovsky 5ac4a852e1 Updated performance tests. Added app-profile-jee test application (from qs) to the testsuite. 2016-11-23 15:52:38 +01:00
Bill Burke fad33bc50f Merge remote-tracking branch 'upstream/master' 2016-11-23 08:31:28 -05:00
Bill Burke d5925b8ccf remove realm UserFed SPI methods 2016-11-23 08:31:20 -05:00
mhajas 5e97a46afc KEYCLOAK-1881 Fix SAML Filter key rotation tests 2016-11-23 10:53:13 +01:00
Marek Posolda 8ee2134e05 Merge pull request #3537 from hmlnarik/KEYCLOAK-3035
KEYCLOAK-3035 - Fix intermittent failures and refactor broker test
2016-11-23 10:48:38 +01:00
Bill Burke 2da9986717 Merge pull request #3540 from mhajas/KEYCLOAK-3671
KEYCLOAK-3671
2016-11-22 14:48:59 -05:00
Bill Burke c3b6b07e3a Merge pull request #3541 from patriot1burke/master
port SSSD and Kerberos to User Storage SPI
2016-11-22 14:47:34 -05:00
Bill Burke 045d6ef1d0 Merge remote-tracking branch 'upstream/master' 2016-11-22 11:28:09 -05:00
Bill Burke ecba291ea0 Merge pull request #3538 from stianst/master
Bump version to 2.4.1.Final-SNAPSHOT
2016-11-22 11:27:53 -05:00
Pavel Drozd 328ab1cc27 KEYCLOAK-3892 - Fix profile page assertion. 2016-11-22 16:44:16 +01:00
Marek Posolda 884f84d5ed Merge pull request #3539 from mposolda/master
KEYCLOAK-3962 Attempt to fix travis
2016-11-22 16:33:09 +01:00
mhajas b2d48c86a6 KEYCLOAK-3671 2016-11-22 16:32:39 +01:00
mposolda 3c5a0a3394 KEYCLOAK-3962 Attempt to fix travis 2016-11-22 16:00:05 +01:00
Stian Thorgersen 6ec82865d3 Bump version to 2.4.1.Final-SNAPSHOT 2016-11-22 14:56:21 +01:00
Hynek Mlnarik dab2225a39 KEYCLOAK-3035 - Fix intermittent failures and refactor broker test 2016-11-22 14:51:44 +01:00
Hiroyuki Wada 0e93603aee KEYCLOAK-3957 Update Japanese translation 2016-11-22 20:32:16 +09:00
Tomas Kyjovsky d44f347b08 Added 2nd secure-deployment, added option to test with separate realm configuration in keycloak subsystem. Moved jboss-specific test to a separate class. 2016-11-22 11:43:26 +01:00
Marek Posolda 99f12ff720 Merge pull request #3299 from paoloantinori/fuse_rest_dsl_example
KEYCLOAK-3678 - Fuse examples: added Camel RestDSL
2016-11-22 11:35:53 +01:00
Bill Burke a3cb3730b4 sssd port 2016-11-21 17:24:55 -05:00
Stan Silvert 2cca3bf570 KEYCLOAK-3949: User Federation "welcome" screen is always shown for a
while even if some providers are there.
2016-11-21 14:33:54 -05:00
Stan Silvert 33cd261d83 Merge pull request #3532 from ssilvert/enter-key
KEYCLOAK-3948: Unexpected behavior when pressing Enter with some forms
2016-11-21 14:23:21 -05:00
Stian Thorgersen e515d7bbbe Merge pull request #3531 from stianst/master
Fix travis
2016-11-21 19:30:06 +01:00
Bill Burke 0c05dc093f Merge remote-tracking branch 'upstream/master' 2016-11-21 12:26:24 -05:00
Marek Posolda 68701900d8 Merge pull request #3530 from mposolda/master
KEYCLOAK-3944 Imported legacy LDAP Federation provider doesn't have d…
2016-11-21 18:25:44 +01:00
Stan Silvert ee18d062ab KEYCLOAK-3948: Remove console.info() statements. 2016-11-21 11:48:07 -05:00
Stan Silvert 695213dd31 KEYCLOAK-3948: Unexpected behavior when pressing Enter with some forms 2016-11-21 11:44:58 -05:00
Bill Burke 50fc083d97 fix migration scripts 2016-11-21 11:43:09 -05:00
Bill Burke 798fd84698 Merge remote-tracking branch 'upstream/master' 2016-11-21 11:33:52 -05:00
Bill Burke 19575b2c8f port kerberos 2016-11-21 11:33:44 -05:00
Stian Thorgersen a52f7f9baa Fix travis 2016-11-21 17:04:39 +01:00
Marek Posolda fc84ffbd65 Merge pull request #3527 from hmlnarik/KEYCLOAK-3469-fix-in-test
KEYCLOAK-3469 Fix in the account test
2016-11-21 16:33:32 +01:00
mposolda 27e5d9672a KEYCLOAK-3944 Imported legacy LDAP Federation provider doesn't have default mappers available 2016-11-21 16:17:49 +01:00
Hynek Mlnarik 8f31425daf KEYCLOAK-3469 Fix in the account test 2016-11-21 16:00:36 +01:00
Marek Posolda 7c4591617b Merge pull request #3524 from hmlnarik/KEYCLOAK-3941
KEYCLOAK-3941 Add dependency to apache httpcomponents to WF/EAP deployments
2016-11-21 15:08:20 +01:00
Marek Posolda c21ab943bb Merge pull request #3525 from mposolda/master
KEYCLOAK-3943 Admin console issues when updating LDAP Storage provider
2016-11-21 15:07:23 +01:00
mposolda d8c8afe070 KEYCLOAK-3943 Admin console issues when updating LDAP Storage provider 2016-11-21 14:22:45 +01:00
Hynek Mlnarik d1a35a5acc KEYCLOAK-3941 2016-11-21 12:15:39 +01:00
Marek Posolda 2d4cda7eda Merge pull request #3522 from mposolda/master
KEYCLOAK-3931 Fix Mongo to have LDAP tests pass
2016-11-21 12:00:30 +01:00
Vaclav Muzikar 5e731d9557 KEYCLOAK-3872 Stabilize PasswordPolicy UI test 2016-11-21 11:31:28 +01:00
mposolda 6df7a80352 KEYCLOAK-3931 Fix Mongo to have LDAP tests pass 2016-11-21 11:25:18 +01:00
Marek Posolda d261bbef88 Merge pull request #3521 from mposolda/master
KEYCLOAK-3936 Fix keycloak-authz-client JDK7 compatibility
2016-11-21 11:05:29 +01:00
mposolda 4fa903a02f KEYCLOAK-3936 Fix keycloak-authz-client JDK7 compatibility 2016-11-21 10:12:23 +01:00
Marek Posolda f0fd9e6137 Merge pull request #3519 from sldab/java7support-adapters
Restore Java 7 compatibility for adapters.
2016-11-21 09:35:25 +01:00
Slawomir Dabek a45ffce118 Restore Java 7 compatibility for adapters. 2016-11-20 22:19:53 +01:00
Marek Posolda c558e7e0b1 Merge pull request #3520 from ramunask/lt-translations-for-2.4
KEYCLOAK-3934 Lithuanian locale update for 2.4 version
2016-11-20 21:07:57 +01:00
Ramunas K bfec70481b translated admin-messages_lt 2016-11-19 23:29:49 +02:00
Marek Posolda a7c8fe4375 Merge pull request #3518 from mposolda/master
KEYCLOAK-3930 KEYCLOAK-3931 LDAP and Mongo fixes
2016-11-18 21:27:58 +01:00
mposolda da52a5c9cf KEYCLOAK-3930 KEYCLOAK-3931 LDAP and Mongo fixes 2016-11-18 20:02:02 +01:00
Marek Posolda 639cf1e038 Merge pull request #3517 from mposolda/master
KEYCLOAK-3895 Make UserSessionProvider and UserSessionPersisterProvid…
2016-11-18 16:31:04 +01:00
mposolda 76bfbad2c4 KEYCLOAK-3895 Make UserSessionProvider and UserSessionPersisterProvider to rely on UserRemovedEvent callbacks 2016-11-18 15:58:33 +01:00
Stian Thorgersen cca352fa9f Merge pull request #3516 from stianst/KEYCLOAK-3881
KEYCLOAK-3881 Fix login status iframe with * origin
2016-11-18 14:09:02 +01:00
Stian Thorgersen 7043ecc21b KEYCLOAK-3881 Fix login status iframe with * origin 2016-11-18 12:50:52 +01:00
Marek Posolda c384b8a81f Merge pull request #3515 from mposolda/master
KEYCLOAK-3928 KEYCLOAK-3880 Fix UserFederation providers list in admi…
2016-11-18 12:26:33 +01:00
mposolda 747738c0fc KEYCLOAK-3928 KEYCLOAK-3880 Fix UserFederation providers list in admin console 2016-11-18 11:57:57 +01:00
Marek Posolda 3e71aeddf3 Merge pull request #3479 from hmlnarik/KEYCLOAK-3469-UserRealmRoleMapper
KEYCLOAK-3469 Make role mappers account for user groups
2016-11-18 09:21:56 +01:00
Marek Posolda a2e00e4c3b Merge pull request #3497 from vramik/KEYCLOAK-3899
KEYCLOAK-3899 Make migration properties available in tests
2016-11-18 09:12:10 +01:00
Marek Posolda 2c6e9be8e5 Merge pull request #3504 from vramik/KEYCLOAK-3907
KEYCLOAK-3907 Test backwards compatibility of realm import
2016-11-18 09:10:59 +01:00
Marek Posolda fce41c0ab8 Merge pull request #3507 from mhajas/KEYCLOAK-3916
KEYCLOAK-3916 Remove classes with missing parent
2016-11-18 09:02:10 +01:00
Marek Posolda ca5c806f58 Merge pull request #3513 from pedroigor/KEYCLOAK-3830
[KEYCLOAK-3830] - Properly handle public resources when using security-constraints
2016-11-18 08:59:21 +01:00
Marek Posolda 1e8f5f1a51 Merge pull request #3514 from pedroigor/KEYCLOAK-3674
[KEYCLOAK-3674] - Review policies dropbox options
2016-11-18 08:56:56 +01:00
Marek Posolda b434c2b9cf Merge pull request #3510 from ssilvert/delete-subflows
KEYCLOAK-3681: Delete top flow doesn't remove all subflows
2016-11-18 08:50:13 +01:00
Marek Posolda 60afd280c3 Merge pull request #3512 from abstractj/KEYCLOAK-3918
[KEYCLOAK-3918] - Server won't boot on Windows
2016-11-18 08:44:37 +01:00
Pedro Igor 9b2ef96b22 [KEYCLOAK-3830] - Allow to configure enforcement-mode to a path definition 2016-11-17 20:50:28 -02:00
Pedro Igor 44ee53b0d8 [KEYCLOAK-3830] - Only enforce permissions when there is a KeycloakSecurityContext. 2016-11-17 20:50:17 -02:00
Pedro Igor Craveiro e Silva cc9131441e [KEYCLOAK-3674] - Review policies dropbox options 2016-11-17 20:43:32 -02:00
Marek Posolda 5e496fb9bb Merge pull request #3511 from mposolda/ispn-invalidations-rebase
KEYCLOAK-3857 Clustered invalidation cache fixes and refactoring. Sup…
2016-11-16 23:10:48 +01:00
Bruno Oliveira 5c089e45d4 [KEYCLOAK-3918] - Server won't boot on Windows 2016-11-16 19:37:48 -02:00
mposolda a27be0cee7 KEYCLOAK-3857 Clustered invalidation cache fixes and refactoring. Support for cross-DC for invalidation caches. 2016-11-16 22:29:23 +01:00
Stan Silvert a0ae8c126e Add comment to test 2016-11-16 12:45:34 -05:00
Stan Silvert 55556fc63c KEYCLOAK-3681: Delete top flow doesn't remove all subflows 2016-11-16 12:43:11 -05:00
mhajas 8fc5b00d91 KEYCLOAK-3653 Tests for cert endpoint 2016-11-16 15:31:48 +01:00
mhajas 475c6403cc KEYCLOAK-3916 Remove classes with missing parent 2016-11-16 15:27:35 +01:00
Stian Thorgersen cf17687b8b Merge pull request #3506 from abstractj/KEYCLOAK-3913
[KEYCLOAK-3913] - Native libraries included within SSSD jar
2016-11-16 14:56:53 +01:00
Vlasta Ramik 50339f6f0e Test backwards compatibility of realm import 2016-11-16 13:17:04 +01:00
Stian Thorgersen 26b1541f4a Merge pull request #3476 from abstractj/KEYCLOAK-3875
[KEYCLOAK-3875] - Conditional OTP Forms not working as expected
2016-11-16 12:44:50 +01:00
Stian Thorgersen 1c3a475d1e Merge pull request #3485 from hmlnarik/KEYCLOAK-3071
KEYCLOAK-3071 Add SOAP and PAOS endpoints to valid redirect URIs on SP import
2016-11-16 12:38:45 +01:00
Stian Thorgersen 65136fabdd Merge pull request #3486 from hmlnarik/KEYCLOAK-3488
KEYCLOAK-3488 Fix typo in SamlPrincipal
2016-11-16 12:21:50 +01:00
Stian Thorgersen 70d1ac7162 Merge pull request #3505 from vramik/KEYCLOAK-3910
KEYCLOAK-3910 review clean-start tests
2016-11-16 12:21:21 +01:00
Stian Thorgersen b1f35ff974 Merge pull request #3491 from hmlnarik/KEYCLOAK-3087-XmlEncryptionUtil
KEYCLOAK-3087 XmlEncryptionUtil cleanup, 3DES removal
2016-11-16 12:17:26 +01:00
Stian Thorgersen f5d4554b39 Merge pull request #3494 from stianst/KEYCLOAK-3882
KEYCLOAK-3882 Move more provider factories and SPIs to private
2016-11-16 12:16:18 +01:00
Bruno Oliveira 8a0cb507c5 [KEYCLOAK-3913] - Native libraries included within SSSD jar
- Revert "[KEYCLOAK-3580] - Migrate DBus Java from Unix Socket C library to jnr-unixsocket"
    This reverts commit 6c5d1b9214.
  - Use JNA RPM, instead of Maven
2016-11-16 09:14:05 -02:00
Stian Thorgersen 89a43b8771 Merge pull request #3466 from melahn/update-maven-version
updated requireMavenVersion in parent pom to 3.2.1
2016-11-16 12:13:48 +01:00
Stian Thorgersen 83571dba5d Merge pull request #3495 from rigon/patch-2
Update README.md
2016-11-16 12:13:00 +01:00
Pedro Igor a6d59faf98 Merge pull request #3503 from pedroigor/KEYCLOAK-3339
[KEYCLOAK-3339] - Enable authorization services to EAP6 adapter
2016-11-16 08:38:44 -02:00
Stan Silvert 9512180406 Merge pull request #3502 from ssilvert/hide-role-selector
KEYCLOAK-3905: Role selector sometimes displayed when client full scope
2016-11-15 10:24:01 -05:00
Vlasta Ramik 0f0f20716f Review clean-start tests 2016-11-15 14:29:13 +01:00
Stian Thorgersen b4f072ed81 KEYCLOAK-3882 Move more provider factories and SPIs to private 2016-11-15 12:05:25 +01:00
Pedro Igor 394a9daa64 [KEYCLOAK-3906] - Update IP-BOM 6.0.10.Final 2016-11-15 01:03:35 +00:00
Pedro Igor a3beef754c [KEYCLOAK-3339] - Enable authorization services to EAP6 adapter 2016-11-15 00:26:29 +00:00
Bill Burke 94afba91a0 Merge pull request #3501 from patriot1burke/master
LDAP port to UserStorageSPI
2016-11-14 17:24:39 -05:00
Bill Burke 8794416241 fix db2 2016-11-14 16:22:30 -05:00
Bill Burke f471ad46c9 fix server-private spi changes 2016-11-14 15:28:08 -05:00
Marek Posolda 989a701e95 Merge pull request #3498 from hmlnarik/KEYCLOAK-3734
KEYCLOAK-3734 Unify master changelog of DB2 and other databases
2016-11-14 21:18:27 +01:00
Marek Posolda 37c1c84e04 Merge pull request #3499 from abstractj/KEYCLOAK-3900
[KEYCLOAK-3900] - SSSD Provider: NullPointerException when SSSD is stopped
2016-11-14 21:16:19 +01:00
Bill Burke 39ffd3d756 fix pom 2016-11-14 15:15:20 -05:00
Stan Silvert b920c7b2c4 KEYCLOAK-3905: Role selector sometimes displayed when client full scope
enabled
2016-11-14 15:11:22 -05:00
Pedro Igor a2c54b03c8 Merge pull request #3500 from pedroigor/KEYCLOAK-3554-new
[KEYCLOAK-3554] - Properly handle dependencies between policies when importing settings
2016-11-14 18:10:37 -02:00
Bill Burke 7666387277 rename directory 2016-11-14 15:10:35 -05:00
Bill Burke cc0eb47814 merge 2016-11-14 15:09:41 -05:00
Bill Burke c280634bfa fix tests 2016-11-14 15:06:17 -05:00
Pedro Igor fb1cd9d27d [KEYCLOAK-3554] - Properly handle dependencies between policies when importing settings 2016-11-14 18:55:53 +00:00
Bruno Oliveira b612415a88 [KEYCLOAK-3900] - SSSD Provider: NullPointerException when SSSD is stopped 2016-11-14 16:04:18 -02:00
Hynek Mlnarik 223041bc6b KEYCLOAK-3734 Unify master changelog of DB2 and other databases 2016-11-14 15:19:54 +01:00
Vlasta Ramik ab0514041e Make migration properties available in tests 2016-11-14 13:09:03 +01:00
Hynek Mlnarik 750e942267 KEYCLOAK-3469 Make role mappers account for user groups 2016-11-14 11:38:00 +01:00
Hynek Mlnarik 17c13043d0 KEYCLOAK-3087 XmlEncryptionUtil cleanup, 3DES removal 2016-11-14 10:26:39 +01:00
Gregory Melahn 750075d0dd Will update the README.md file instead
This reverts commit b58bfe56d6.
2016-11-13 12:40:45 -05:00
Gregory Melahn 9df43e3bd2 Merge branch 'update-maven-version' of https://github.com/melahn/keycloak into update-maven-version 2016-11-13 12:25:30 -05:00
Gregory Melahn d1eaace4cf fixed maven prereq version to match pom 2016-11-13 12:24:01 -05:00
Bruno Oliveira 39f40bc005 [KEYCLOAK-3875] - Conditional OTP Forms not working as expected 2016-11-11 15:16:08 -02:00
Stian Thorgersen 6c64494620 Merge pull request #3493 from stianst/master
Try to fix Travis
2016-11-11 17:00:25 +01:00
Stian Thorgersen c9e3fe9a92 Try to fix Travis 2016-11-11 17:00:11 +01:00
Bill Burke 4ce055cede mongo ldap migration script 2016-11-11 09:06:25 -05:00
Ricardo Gonçalves 1e65174867 Update README.md 2016-11-11 12:30:42 +00:00
Pavel Drozd 1052c71124 Merge pull request #3488 from vramik/KEYCLOAK-3885
KEYCLOAK-3885 Add missing migration test for 2.3.0
2016-11-11 09:46:03 +01:00
Stian Thorgersen a86b5988b5 Merge pull request #3484 from hmlnarik/KEYCLOAK-3658
KEYCLOAK-3658 Fixed typo in condition
2016-11-11 09:41:48 +01:00
Stian Thorgersen 088f0ea630 Merge pull request #3490 from stianst/KEYCLOAK-3086
[KEYCLOAK-3086] -  NPE when accessing Account with invalid clientId s…
2016-11-11 09:35:45 +01:00
Stian Thorgersen 08dbdeb57f Merge pull request #3489 from stianst/KEYCLOAK-3882
KEYCLOAK-3882 Split server-spi into server-spi and server-spi-private
2016-11-11 09:35:08 +01:00
Bill Burke 8a5f817030 ldap jpa migration 2016-11-10 16:52:18 -05:00
Bruno Oliveira 675faee593 [KEYCLOAK-3086] - NPE when accessing Account with invalid clientId set as ?referrer, and additional referrer_uri set 2016-11-10 13:49:40 +01:00
Stian Thorgersen 7e33f4a7d1 KEYCLOAK-3882 Split server-spi into server-spi and server-spi-private 2016-11-10 13:28:42 +01:00
Vlasta Ramik 71c88a8dfc Add missing migration test for 2.3.0 2016-11-10 11:02:26 +01:00
Stian Thorgersen 52a4509ada Merge pull request #3483 from hmlnarik/KEYCLOAK-3870-keycloak-saml-xsd
KEYCLOAK-3870 Schema for keycloak-saml.xml
2016-11-10 08:20:24 +01:00
Stian Thorgersen 1ee6df412e Merge pull request #3482 from vramik/KEYCLOAK-2741
KEYCLOAK-2741 remove KEYCLOAK_REMEMBERME when user logs in without rememberme checked
2016-11-10 07:45:07 +01:00
Bill Burke 94076a3b24 admin console ui 2016-11-09 17:34:07 -05:00
Hynek Mlnarik 43002f7a8a KEYCLOAK-3488 Fix typo 2016-11-09 15:11:45 +01:00
Hynek Mlnarik 8816b55843 KEYCLOAK-3071 Add SOAP and PAOS endpoints to valid redirect URIs on SP import 2016-11-09 14:13:53 +01:00
Hynek Mlnarik 9c724b616d KEYCLOAK-3658 Fixed typo in condition 2016-11-09 11:27:33 +01:00
Hynek Mlnarik 025cf5ebaf KEYCLOAK-3870 Schema for keycloak-saml.xml
Updated schema schema for keycloak-saml.xml (added documentation, set
up enumeration instead of free string where applicable per documentation)
and updated existing keycloak-saml.xml files with schema reference.
2016-11-09 10:45:43 +01:00
Vlasta Ramik 6f1b8e1fee remove KEYCLOAK_REMEMBERME when user logs in without rememberme checked + tests 2016-11-09 10:33:46 +01:00
Stan Silvert 80b071024f KEYCLOAK-2720: Add unique constraint 2016-11-08 15:05:19 -05:00
Bill Burke 4880c0443c ldap port admin console 2016-11-08 12:30:20 -05:00
Pavel Drozd c05057748f Merge pull request #3474 from vramik/KEYCLOAK-3489
KEYCLOAK-3489 migration tests - minor fix
2016-11-08 15:38:14 +01:00
Stian Thorgersen de7006a048 Merge pull request #3473 from hmlnarik/KEYCLOAK-3215
KEYCLOAK-3215 Use RSA-OAEP for key encryption
2016-11-08 10:16:54 +01:00
Vlasta Ramik 2b6811a366 migration tests - minor fix 2016-11-08 09:48:15 +01:00
Pavel Drozd 10f9800327 Merge pull request #3469 from mhajas/KEYCLOAK-3853
KEYCLOAK-3853 Fix keyRotation adapter test
2016-11-08 08:34:11 +01:00
Stian Thorgersen 292777259e Merge pull request #3472 from hmlnarik/KEYCLOAK-1881-saml-key-rotation
Keycloak 1881 - SAML key/cert rotation for IdP
2016-11-08 07:56:25 +01:00
Hynek Mlnarik 01c42f9359 KEYCLOAK-3215 Use RSA-OAEP for key encryption 2016-11-08 07:44:59 +01:00
Stian Thorgersen ef48594d85 Merge pull request #3470 from sebastienblanc/KEYCLOAK-3548
KEYCLOAK-3548 : Send 401 when no keycloak.json for EAP6/AS7 Adapter
2016-11-08 07:37:00 +01:00
Stian Thorgersen c9a58fad15 Merge pull request #3464 from stianst/KEYCLOAK-3692
KEYCLOAK-3692
2016-11-08 07:36:39 +01:00
Stian Thorgersen 5b54375490 Merge pull request #3468 from sebastienblanc/KEYCLOAK-3514
KEYCLOAK-3514 : fix servlet logout on bearer-only client
2016-11-08 07:35:44 +01:00
Stian Thorgersen db4f3561a5 Merge pull request #3454 from ssilvert/keystore-error-messages
KEYCLOAK-3817: More detailed errors when loading keys from JKS
2016-11-08 07:33:43 +01:00
Bill Burke f138eecc27 port KerberosLdapTest 2016-11-06 09:15:49 -05:00
Bill Burke 5a86623c88 merge 2016-11-06 08:52:10 -05:00
Bill Burke 14dc0ff92f Merge remote-tracking branch 'upstream/master' 2016-11-05 20:05:01 -04:00
Bill Burke 4302b440ee ldap port 2016-11-05 20:04:53 -04:00
Bill Burke c75dcb90c2 ldap port 2016-11-04 21:25:47 -04:00
Stan Silvert 3efd103712 KEYCLOAK-2720: Fix PermissionsTest 2016-11-04 19:05:32 -04:00
Stan Silvert f922164a88 Merge pull request #3471 from ssilvert/otp-low-res
KEYCLOAK-3816: Tweak CSS for 1280 x 720 display
2016-11-04 17:10:22 -04:00
Hynek Mlnarik 36257863db KEYCLOAK-1881 Integration tests for key rotation in SAML IdP 2016-11-04 21:53:43 +01:00
Hynek Mlnarik 14f96fdb4b KEYCLOAK-1881 Wildfly, AS7, EAP Adapters 2016-11-04 21:53:43 +01:00
Hynek Mlnarik 570d71c07b KEYCLOAK-1881 Update client adapter configuration
Client adapter configuration was updated to support for customization
of HttpClient used for key retrieval similarly to OIDC. Further, it is
now possible to specify several static public keys for signature
verification in saml-client.xml.
2016-11-04 21:53:43 +01:00
Hynek Mlnarik 8ae1b1740d KEYCLOAK-1881 Client installers 2016-11-04 21:53:43 +01:00
Hynek Mlnarik 4f9e35c0a1 KEYCLOAK-1881 Support for multiple certificates in broker (hardcoded at the moment) 2016-11-04 21:53:43 +01:00
Hynek Mlnarik 67bb9aef3d KEYCLOAK-1881 Add switch to enable/disable generation of <Extensions>
Some SP clients might be confused by using a standard SAML protocol tag
<Extensions> which is used for signed REDIRECT binding messages to
specify signing key ID. To enable the interoperability, generation of
the tag is disabled by default and can be enabled for individual
clients.
2016-11-04 21:53:43 +01:00
Hynek Mlnarik 1ae268ec6f KEYCLOAK-1881 Include key ID for REDIRECT and use it for validation
Contrary to POST binding, signature of SAML protocol message sent using
REDIRECT binding is contained in query parameters and not in the
message. This renders <dsig:KeyName> key ID hint unusable. This commit
adds <Extensions> element in SAML protocol message containing key ID so
that key ID is present in the SAML protocol message.
2016-11-04 21:53:43 +01:00
Hynek Mlnarik 10deac0b06 KEYCLOAK-1881 KeyLocator implementation for SAML descriptor 2016-11-04 21:53:43 +01:00
Hynek Mlnarik 057cc37b60 KEYCLOAK-1881 Clone OIDC adapter HttpClient tools to SAML adapter
and
KEYCLOAK-1881 Extract httpclient configuration from AdapterConfig
2016-11-04 21:53:43 +01:00
Hynek Mlnarik 70a8255eae KEYCLOAK-1881 Basic key locator support 2016-11-04 21:53:43 +01:00
Hynek Mlnarik d5c3bde0af KEYCLOAK-1881 Make SAML descriptor endpoint return all certificates 2016-11-04 21:53:43 +01:00
Hynek Mlnarik 5d840500af KEYCLOAK-1881 Include key ID in <ds:KeyInfo> in SAML assertions and protocol message
Changes of SAML assertion creation/parsing that are required to allow
for validation of rotating realm key: signed SAML assertions and signed
SAML protocol message now contain signing key ID in XML <dsig:KeyName>
element.
2016-11-04 21:53:43 +01:00
Hynek Mlnarik 904a5c3ca5 KEYCLOAK-3864 Add support for SAML2 <Extensions> element in protocol messages 2016-11-04 21:53:43 +01:00
Stan Silvert 66698f60d4 KEYCLOAK-3816: Tweak CSS for 1280 x 720 display 2016-11-04 15:32:19 -04:00
Stan Silvert 3035cbc5db KEYCLOAK-2720: Unit test 2016-11-04 13:11:06 -04:00
sebastien blanc 6c18b300a4 add integration test 2016-11-04 07:39:22 +01:00
Stian Thorgersen 6baf9b89fe Merge pull request #3467 from abstractj/KEYCLOAK-3580
[KEYCLOAK-3580] - Migrate DBus Java from Unix Socket C library to jnr-unixsocket
2016-11-04 05:57:02 +01:00
mhajas fd5f7eb165 KEYCLOAK-3853 Fix keyRotation adapter test 2016-11-03 16:04:31 +01:00
sebastien blanc 76c37de1e8 KEYCLOAK-3545: Send 401 if no kc configuration in EAP6/AS7 2016-11-03 15:39:02 +01:00
Pavel Drozd c3f3c5c6a5 Merge pull request #3453 from vramik/KEYCLOAK-2957
KEYCLOAK-2957 test
2016-11-03 15:26:14 +01:00
Pavel Drozd f2b28d8215 Merge pull request #3456 from vramik/KEYCLOAK-3579
KEYCLOAK-3579 add preview profile assumption to tests
2016-11-03 15:25:17 +01:00
Pavel Drozd 672f5d879b Merge pull request #3465 from mhajas/KEYCLOAK-3854
KEYCLOAK-3854 KEYCLOAK-3579 Move EnfrocerConfigTest out from adapter tests
2016-11-03 15:23:39 +01:00
Pavel Drozd 20a6795f74 Merge pull request #3458 from tkyjovsk/KEYCLOAK-3849
KEYCLOAK-3849 Add ability to select keycloak profile in testsuite
2016-11-03 15:21:22 +01:00
Pavel Drozd c1ef4067bc Merge pull request #3459 from mhajas/KEYCLOAK-3850
KEYCLOAK-3850 Fix test-apps-dist zip file name
2016-11-03 15:18:11 +01:00
Pavel Drozd c1fb71c031 Merge pull request #3463 from mhajas/KEYCLOAK-3841
KEYCLOAK-3841 Remove missing dependency
2016-11-03 15:15:57 +01:00
Pavel Drozd 136f3bc5f9 Merge pull request #3457 from mhajas/KEYCLOAK-3728
KEYCLOAK-3728 Test for turned off script based authenticators
2016-11-03 15:15:32 +01:00
Stian Thorgersen 2052a0dff1 Fix 2016-11-03 14:37:07 +01:00
sebastien blanc ee8c986e8e add integration test 2016-11-03 14:30:42 +01:00
Gregory Melahn b58bfe56d6 updated requireMavenVersion in parent pom to 3.2.1 2016-11-03 08:26:27 -04:00
Bruno Oliveira 6c5d1b9214 [KEYCLOAK-3580] - Migrate DBus Java from Unix Socket C library to jnr-unixsocket 2016-11-03 10:25:45 -02:00
Pedro Igor 97be09a3bc Merge pull request #3462 from pedroigor/KEYCLOAK-3704
[KEYCLOAK-3704] - Owner validation and removal
2016-11-03 09:20:16 -02:00
mhajas 6605ba1362 KEYCLOAK-3854 Move EnfrocerConfigTest out from adapter tests 2016-11-03 09:43:49 +01:00
Stian Thorgersen ac18b6c71e KEYCLOAK-3692 2016-11-03 08:33:56 +01:00
mhajas d9069e0955 KEYCLOAK-3841 Remove missing dependency 2016-11-03 08:27:13 +01:00
Stan Silvert 3f98f23422 Merge pull request #3460 from ssilvert/otp-low-res
KEYCLOAK-3816: Broken OTP setup with smaller resolutions
2016-11-02 20:25:19 -04:00
Pedro Igor 706c1e2660 [KEYCLOAK-3704] - Registering UserSinchronizer to remove resources when the owner is removed 2016-11-02 21:40:58 -02:00
Pedro Igor 95d2130405 [KEYCLOAK-3704] - Checkign if owner is a valid user 2016-11-02 21:01:24 -02:00
Pedro Igor 683428a2c2 Merge pull request #3461 from pedroigor/KEYCLOAK-3555
[KEYCLOAK-3555] - Filtering photoz authz config file to update project version
2016-11-02 20:59:03 -02:00
Pedro Igor a315919dfc [KEYCLOAK-3555] - Filtering photoz authz config file to update project version. 2016-11-02 18:11:30 -02:00
Stan Silvert 1b89472451 KEYCLOAK-3817: Fix tests 2016-11-02 14:21:54 -04:00
Stan Silvert ae2a1e929f KEYCLOAK-3816: Broken OTP setup with smaller resolutions 2016-11-02 13:53:15 -04:00
mhajas ad995934b0 KEYCLOAK-3728 Test for turned off script based authenticators 2016-11-02 16:51:55 +01:00
mhajas c5b6507830 KEYCLOAK-3850 Fix test-apps-dist zip file name 2016-11-02 16:49:25 +01:00
Tomas Kyjovsky d7c5f991c8 KEYCLOAK-3579: added ability to select keycloak.profile in testsuite 2016-11-02 15:58:01 +01:00
Vlasta Ramik cef1973ee4 KEYCLOAK-3579 add preview profile assumption to tests 2016-11-02 14:22:03 +01:00
sebastien blanc d98c375495 KEYCLOAK-3514 : Don't call logout for bearer-only client 2016-11-02 11:39:37 +01:00
Pavel Drozd da516a78b3 Merge pull request #3450 from mhajas/KEYCLOAK-3841
KEYCLOAK-3841 Testing of Hawtio console on EAP6 + Fuse integration
2016-11-02 10:54:52 +01:00
Pavel Drozd a0f359c93c Merge pull request #3452 from mhajas/KEYCLOAK-3142
KEYCLOAK-3142 Check ResourceType in AdminEvent test
2016-11-02 10:27:54 +01:00
Pedro Igor 4bf5da8fac Merge pull request #3371 from brewers/bug/cache-dynamic-resource
KEYCLOAK-3752 : Include programmatically created resources in the resource cache
2016-11-02 07:19:04 -02:00
Pedro Igor 44977207e3 Merge pull request #3402 from brewers/feature/js-entitlement-request
KEYCLOAK-3777: Add client api for requesting entitlements with permission requests
2016-11-02 07:15:02 -02:00
Stan Silvert facdd586a3 KEYCLOAK-2720: Should not allow two groups with the same path. 2016-11-01 16:08:30 -04:00
Pavel Drozd 893963f339 Merge pull request #3449 from vramik/KEYCLOAK-3489
KEYCLOAK-3489 add profile to tests module for testing migration for productized version
2016-11-01 19:10:13 +01:00
Stan Silvert a5e5f4cf9c KEYCLOAK-3817: More detailed errors when loading keys from JKS 2016-11-01 13:54:34 -04:00
Vlasta Ramik fdb7924d3f add test for KEYCLOAK-2957 to arquillian testsuite 2016-11-01 11:31:19 +01:00
mhajas 782620655f KEYCLOAK-3142 Check ResourceType in AdminEvent test 2016-11-01 11:09:43 +01:00
mhajas 446b57b827 KEYCLOAK-3841 Testing of Hawtio console on EAP6 + fuse integration 2016-10-31 14:35:13 +01:00
Pavel Drozd 2c287af977 Merge pull request #3432 from zschwarz/tech-preview-profile
RHSSO-473 Add preview profile job to RH-SSO CI
2016-10-31 11:24:24 +01:00
Vlasta Ramik 4bd567e610 add profile to tests module for testing migration for productized version 2016-10-31 09:29:16 +01:00
Stan Silvert 35b0872ed9 Merge pull request #3447 from ssilvert/enter-doesnt-submit
KEYCLOAK-3281: Pressing Enter in Identity Provider form causes error
2016-10-28 13:22:20 -04:00
Stan Silvert 89348af59e KEYCLOAK-3281: Pressing Enter in Identity Provider form causes error 2016-10-28 12:06:53 -04:00
Bill Burke ccaac40863 Merge pull request #3437 from patriot1burke/master
disable credential type REST and admin ui
2016-10-28 11:33:16 -04:00
Stian Thorgersen 33bd7ca45f Merge pull request #3446 from mstruk/KEYCLOAK-3767
KEYCLOAK-3767 kcreg should show hint for help if required arguments are missing
2016-10-28 14:56:24 +02:00
Marko Strukelj 408850e7bd KEYCLOAK-3767 kcreg should show hint for help if required arguments are missing 2016-10-28 11:54:48 +02:00
Stian Thorgersen f4a77c3d06 Merge pull request #3444 from stianst/KEYCLOAK-3225
KEYCLOAK-3225
2016-10-28 11:51:35 +02:00
Stian Thorgersen 3ea555bae6 Merge pull request #3443 from stianst/KEYCLOAK-3606
KEYCLOAK-3606
2016-10-28 11:51:21 +02:00
Stian Thorgersen c543035f5a Merge pull request #3442 from stianst/KEYCLOAK-3726
KEYCLOAK-3726
2016-10-28 11:51:03 +02:00
Stian Thorgersen b6b567f948 Merge pull request #3441 from stianst/KEYCLOAK-3733
KEYCLOAK-3733 Set default max results for paginated endpoints
2016-10-28 10:36:24 +02:00
Stian Thorgersen 479295cfd2 KEYCLOAK-3225
Modifying user's Identity Provider Links requires manage-realm client role
2016-10-28 10:25:41 +02:00
Stian Thorgersen a78cfa4b2c Merge pull request #3440 from stianst/KEYCLOAK-3667
KEYCLOAK-3667
2016-10-28 10:13:06 +02:00
Stian Thorgersen c6caeb3bec Merge pull request #3439 from stianst/KEYCLOAK-3828
KEYCLOAK-3828
2016-10-28 10:12:51 +02:00
Stian Thorgersen 5f58c96258 KEYCLOAK-3606
keycloak.js calls localStorage.key(localStorage.length) indirectly
2016-10-28 10:05:57 +02:00
Stian Thorgersen bb1d255c40 KEYCLOAK-3726
Add supported WildFly version to server overlay
2016-10-28 09:43:51 +02:00
Stian Thorgersen a9d47287ee KEYCLOAK-3733 Set default max results for paginated endpoints 2016-10-28 09:15:05 +02:00
Stian Thorgersen 3d46b4c425 KEYCLOAK-3667 2016-10-28 08:43:24 +02:00
Stian Thorgersen db428dad1d KEYCLOAK-3828
Component uses wrong role
2016-10-28 07:56:44 +02:00
Stian Thorgersen 4cc44bc174 Merge pull request #3420 from bdalenoord/master
KEYCLOAK-3807: Calling 'setHandler' is forbidden
2016-10-28 06:45:47 +02:00
Stian Thorgersen 3e5f490882 Merge pull request #3424 from sebastienblanc/KEYCLOAK-3669
KEYCLOAK-3669: Fix Tomcat Adapter for 8.5.5
2016-10-28 06:45:01 +02:00
Stian Thorgersen 7579606ac4 Merge pull request #3431 from mstruk/KEYCLOAK-3766
KEYCLOAK-3766 kcreg should display help when no arguments are passed to command
2016-10-28 06:44:07 +02:00
Stian Thorgersen ee4712b2e9 Merge pull request #3434 from sebastienblanc/KEYCLOAK-3796
KEYCLOAK-3796 : add missing setters
2016-10-28 06:42:59 +02:00
Stian Thorgersen 2d1a458f5d Merge pull request #3408 from hmlnarik/KEYCLOAK-3793
KEYCLOAK-3793 Replace httpclient 4.4 calls with those available in 4.3
2016-10-28 06:41:48 +02:00
Stian Thorgersen e958bd254a Merge pull request #3435 from stianst/KEYCLOAK-3331
KEYCLOAK-3331 Reset password leads to 400 bad request when link is op…
2016-10-28 06:40:48 +02:00
Stian Thorgersen 0c6b47b9f2 Merge pull request #3433 from stianst/KEYCLOAK-3641
KEYCLOAK-3641 Clicking an invalid verification link due to re-send re…
2016-10-28 06:40:27 +02:00
Bill Burke 4cea1919f6 Merge remote-tracking branch 'upstream/master' 2016-10-27 16:17:12 -04:00
Bill Burke 91da6a47d7 disable cred types ui 2016-10-27 16:17:02 -04:00
Marek Posolda f13d759a61 Merge pull request #3436 from mposolda/master
KEYCLOAK-3800 Weird behavior when adding Trusted Hosts as Client Regi…
2016-10-27 21:23:54 +02:00
mposolda 21e423ad5f KEYCLOAK-3800 Weird behavior when adding Trusted Hosts as Client Registration Policy 2016-10-27 18:56:05 +02:00
Stian Thorgersen c6ac3266f0 KEYCLOAK-3641 Clicking an invalid verification link due to re-send removes the email verification key from the session 2016-10-27 16:16:52 +02:00
sebastien blanc 621d234adc renaming fields to align with json names 2016-10-27 16:16:30 +02:00
Stian Thorgersen ab72b2b141 KEYCLOAK-3331 Reset password leads to 400 bad request when link is opened in a different browser session 2016-10-27 16:04:45 +02:00
sebastien blanc e8dd05619b KEYCLOAK-3796 : add missing setters 2016-10-27 14:41:52 +02:00
zschwarz 25909b5e79 RHSSO-473 Add preview profile job to RH-SSO CI 2016-10-27 13:09:20 +02:00
Marko Strukelj 5925a99800 KEYCLOAK-3766 kcreg should display help when no arguments are passed to command 2016-10-27 11:08:36 +02:00
Bill Burke 6e773c84e8 Merge remote-tracking branch 'upstream/master' 2016-10-26 15:48:55 -04:00
Bill Burke 73e3f2a89b REST API for disable cred type 2016-10-26 15:48:45 -04:00
Bill Burke 69dddfa73a Merge pull request #3428 from patriot1burke/master
storage link on user detail
2016-10-26 14:58:33 -04:00
Stan Silvert 3b8972e027 Merge pull request #3423 from ssilvert/otp-low-res
KEYCLOAK-3816: Broken OTP setup with smaller resolutions
2016-10-26 13:58:29 -04:00
Stan Silvert 50b181e804 Merge pull request #3427 from ssilvert/highlight-menu
KEYCLOAK-3795: Hightlight not working in nav sidebar
2016-10-26 09:29:34 -04:00
Stian Thorgersen 21459d0f43 Merge pull request #3430 from stianst/KEYCLOAK-3819
KEYCLOAK-3819 Add support to change name of components
2016-10-26 11:39:27 +02:00
Stian Thorgersen fbe1fd8f98 Merge pull request #3429 from stianst/KEY-FIXES
Various fixes for key providers
2016-10-26 11:38:33 +02:00
Stian Thorgersen a8c844828d KEYCLOAK-3819 Add support to change name of components 2016-10-26 10:00:58 +02:00
Stian Thorgersen c0959fc562 KEYCLOAK-3808 Fix enable and active switches on default provider 2016-10-26 09:49:18 +02:00
Stian Thorgersen 6a86bb8ebe KEYCLOAK-3809 Add required to display name for key provider 2016-10-26 09:38:57 +02:00
Stian Thorgersen 76e2598c5c KEYCLOAK-3805 Use ng-if instead of ng-show in component-config template 2016-10-26 09:30:00 +02:00
Stian Thorgersen bf5e724f00 KEYCLOAK-3815 Prevent resubmission of form when creating key provider 2016-10-26 09:20:37 +02:00
Stian Thorgersen 112538a220 Merge pull request #3425 from mstruk/KEYCLOAK-2366
KEYCLOAK-2366 Unable to download key in Safari
2016-10-26 09:04:31 +02:00
Stian Thorgersen 23ea1f8939 Merge pull request #3411 from mstruk/KEYCLOAK-3789
KEYCLOAK-3789 KcRegTests are failing on CI
2016-10-26 08:57:13 +02:00
Stian Thorgersen 93f9def3e8 Merge pull request #3422 from stianst/KEYCLOAK-3811
KEYCLOAK-3811 User federation screen is missing dropdown with provide…
2016-10-26 08:48:21 +02:00
Bill Burke 8a7703b0ef fix link 2016-10-25 20:41:18 -04:00
Bill Burke 2578df1a82 Merge pull request #3426 from patriot1burke/master
user spi cache policy
2016-10-25 20:39:52 -04:00
Marko Strukelj 8dca101069 KEYCLOAK-3789 KcRegTests are failing on CI
- Ignore occasional extra empty lines at end of stream
2016-10-26 01:30:42 +02:00
Marko Strukelj 4ee759d9ec KEYCLOAK-3789 KcRegTests are failing on CI 2016-10-26 01:06:33 +02:00
Bill Burke 3129e392b0 storage link on user detail 2016-10-25 16:50:34 -04:00
Stan Silvert 0d0d614b99 KEYCLOAK-3795: Hightlight not working in nav sidebar 2016-10-25 16:32:26 -04:00
Bill Burke 3fec344fa3 finish cache policy 2016-10-25 16:13:48 -04:00
Bill Burke f8a78d5565 finish cache policy 2016-10-25 16:13:22 -04:00
Bill Burke 68e853b4bd Merge remote-tracking branch 'upstream/master' 2016-10-25 13:40:32 -04:00
Bill Burke 2cc4a920a0 fix 2016-10-25 13:40:24 -04:00
Bill Burke b67cb0e97a Merge remote-tracking branch 'upstream/master' 2016-10-25 11:44:22 -04:00
Marko Strukelj 1b2f6b763a KEYCLOAK-2366 Unable to download key in Safari
- Updated FileSaver.js to version 1.3.3
2016-10-25 16:38:26 +02:00
sebastien blanc 1c2f49ab4e KEYCLOAK-3669: Fix Tomcat Adapter for 8.5.5 2016-10-25 16:27:41 +02:00
Stan Silvert 3c237760b6 KEYCLOAK-3816: Broken OTP setup with smaller resolutions 2016-10-25 08:38:29 -04:00
Bas Dalenoord 859c5cbe1e KEYCLOAK-3807: Use 'setSecurityHandler';
'insertHandler' is a method introduced in Jetty 9, Jetty 8 should
however be supported so 'setSecurityHandler' does the same thing but
works for both 8.x and 9.x;
2016-10-25 13:59:07 +02:00
Stian Thorgersen 28f31ce57f KEYCLOAK-3811 User federation screen is missing dropdown with providers in RH-SSO theme 2016-10-25 12:44:02 +02:00
Stian Thorgersen 317749a7fd Merge pull request #3419 from stianst/KEYCLOAK-3781
KEYCLOAK-3781 Don't allow deleting the last key provider
2016-10-25 12:31:00 +02:00
Stian Thorgersen 94f33473a8 Merge pull request #3409 from matejonnet/master
Fix typo in exception message.
2016-10-25 12:30:10 +02:00
Pavel Drozd 04f2b9ac01 Merge pull request #3368 from zschwarz/oidc-filter
KEYCLOAK-3747 Servlet filter dependencies
2016-10-25 11:44:47 +02:00
Pavel Drozd 7882a6513c Merge pull request #3415 from vramik/KEYCLOAK-3489
KEYCLOAK-3489 add profile for testing migration for productized version
2016-10-25 11:07:02 +02:00
Stian Thorgersen 7e6c49fc74 Merge pull request #3413 from mstruk/KEYCLOAK-3801
KEYCLOAK-3801 Remove --unsafe from 'kcreg update'
2016-10-25 10:53:08 +02:00
Stian Thorgersen 765c3a7b0d Merge pull request #3418 from stianst/KEYCLOAK-3782
KEYCLOAK-3782 Keysize for rsa-generated should be a dropdown
2016-10-25 10:22:00 +02:00
Bas Dalenoord f3df185bb5 KEYCLOAK-3807: Calling 'setHandler' is forbidden
Use 'insertHandler' as suggested in the 'setHandler's log warning.
2016-10-25 09:14:03 +02:00
Stian Thorgersen 8c42167302 KEYCLOAK-3781 Don't allow deleting the last key provider 2016-10-25 08:57:16 +02:00
Stian Thorgersen 4b27e66714 KEYCLOAK-3782 Keysize for rsa-generated should be a dropdown 2016-10-25 08:52:02 +02:00
Bill Burke 3e28ac1e46 user spi cache policy 2016-10-24 15:36:37 -04:00
hassaneinaltememyictu a119a46495 grant the new role from the saml token if it exist
grant the user with the new role from the saml token if it is a realm role in keycloak
2016-10-24 17:17:22 +02:00
Vlasta Ramik 3ca836ffdc add profile for testing migration for productized version 2016-10-24 15:20:17 +02:00
zschwarz bc718471da KEYCLOAK-3747 Servlet filter dependencies 2016-10-24 15:01:16 +02:00
Marko Strukelj e24b27c79e KEYCLOAK-3801 Remove --unsafe from 'kcreg update' 2016-10-24 11:33:06 +02:00
Stan Silvert dcaac76b4b Merge pull request #3414 from ssilvert/cluster-node
KEYCLOAK-2206: Hide last registration field when adding new cluster node
2016-10-21 16:57:09 -04:00
Stan Silvert d741349830 KEYCLOAK-2206: Hide last registration field when adding new cluster node
for client.
2016-10-21 13:06:03 -04:00
Marek Posolda cd3f9ee27c Merge pull request #3407 from mposolda/KEYCLOAK-3792
KEYCLOAK-3792 Fix failing tests on MySQL
2016-10-21 13:47:48 +02:00
Marek Posolda 3320d34c2b Merge pull request #3406 from mposolda/master
KEYCLOAK-3779 ClientRegistrationPolicies test failing
2016-10-21 13:47:15 +02:00
Matej Lazar 036407fd90 Fix type in exception message. 2016-10-21 12:59:59 +02:00
Hynek Mlnarik 8bca84c0e7 KEYCLOAK-3793 Replace httpclient 4.4 calls with those available in 4.3 2016-10-21 11:34:08 +02:00
mposolda f7a6d39b01 KEYCLOAK-3792 Fix failing tests on MySQL 2016-10-21 11:21:01 +02:00
mposolda c79378ca5f KEYCLOAK-3779 ClientRegistrationPolicies test failing 2016-10-21 10:24:51 +02:00
Stian Thorgersen 4d47f758fc Merge pull request #3405 from stianst/master
Bump version
2016-10-21 10:11:59 +02:00
Stian Thorgersen e390cffa63 KEYCLOAK-3779
ClientRegistrationPoliciesTest failing on Travis
2016-10-21 08:11:11 +02:00
Stian Thorgersen c615674cbb Bump version 2016-10-21 07:03:15 +02:00
Stian Thorgersen 1a4f9e656d Merge pull request #3398 from stianst/KEYCLOAK-3774
KEYCLOAK-3774 Fix keycloak.js with prompt=none and new stricter redir…
2016-10-21 06:34:43 +02:00
Bill Burke e1a214351f Merge pull request #3391 from pulgupta/master
Null pointer exception after users logs in
2016-10-20 16:06:30 -04:00
Stian Thorgersen 9801f09a93 KEYCLOAK-3774 Fix keycloak.js with prompt=none and new stricter redirect_uri 2016-10-20 21:31:25 +02:00
Stian Thorgersen 9f8fb98083 Merge pull request #3382 from stianst/KEYCLOAK-3763
KEYCLOAK-3763
2016-10-20 21:24:11 +02:00
Bill Burke fd86f3bda8 Merge pull request #3399 from patriot1burke/master
realm cache event
2016-10-20 14:02:41 -04:00
Stian Thorgersen 390becb935 Merge pull request #3394 from hmlnarik/KEYCLOAK-3769
KEYCLOAK-3769 Workaround for ChangeLogService stale instance
2016-10-20 19:43:24 +02:00
Stian Thorgersen 7d8c79b17b Merge pull request #3397 from hmlnarik/KEYCLOAK-3775
KEYCLOAK-3775 Example: Add missing org.liquibase dependency to CLI command
2016-10-20 19:42:32 +02:00
Stian Thorgersen 772a1580ff Merge pull request #3403 from mposolda/master
KEYCLOAK-3773 Testsuite failing with mongo
2016-10-20 19:31:37 +02:00
Stian Thorgersen 5a00aaefa8 KEYCLOAK-2594
bind credential being leaked in admin tool JSON response

KEYCLOAK-2972
Keycloak leaks configuration passwords in Admin Event logs
2016-10-20 19:30:59 +02:00
Stian Thorgersen 1bf24d26a4 Merge pull request #3395 from stianst/master
KEYCLOAK-3772
2016-10-20 19:27:03 +02:00
Stian Thorgersen 284f49e584 Merge pull request #3396 from mstruk/KEYCLOAK-3740
KEYCLOAK-3740 kcreg.sh doesn't support symlinking
2016-10-20 19:26:53 +02:00
Stan Silvert e7ab53dd5f Merge pull request #3400 from ssilvert/title-addr-theme
KEYCLOAK-3776: Title for account management broken for address theme
2016-10-20 12:41:40 -04:00
Bill Burke 139158e614 fix 2016-10-20 12:36:24 -04:00
mposolda c4ad84945c KEYCLOAK-3773 Testsuite failing with mongo 2016-10-20 17:47:34 +02:00
Cherian Mathew 94d4afa11c Refactor entitlement request argument name 2016-10-20 17:24:41 +02:00
Cherian Mathew d7d91cfbc0 Add client api for requesting entitlements with permission requests 2016-10-20 17:09:41 +02:00
Stan Silvert 757d5c16df KEYCLOAK-3776: Title for account management broken for address theme 2016-10-20 10:38:21 -04:00
Bill Burke 36c2422fa4 realm cache event 2016-10-20 10:35:28 -04:00
Marek Posolda ec0f222f7e Merge pull request #3393 from mposolda/master
KEYCLOAK-3770 OIDC registration with id_token grant type should set p…
2016-10-20 16:35:08 +02:00
Hynek Mlnarik 969b44768a KEYCLOAK-3775 Example: Add missing org.liquibase dependency to CLI command 2016-10-20 15:35:08 +02:00
Marko Strukelj db0024d857 KEYCLOAK-3740 kcreg.sh doesn't support symlinking
- fix buggy patch
2016-10-20 15:05:17 +02:00
Stian Thorgersen 839c4e8ede KEYCLOAK-3772
Login with Twitter is not working
2016-10-20 15:05:07 +02:00
Hynek Mlnarik d59f6e397f KEYCLOAK-3769 Workaround for ChangeLogService stale instance
Before applying update or validation operation, Liquibase
ChangeLogService needs to be reset to forget about previously set
change log table. Reason is that the factory creating the
ChangeLogService caches this service per DB connection, not per
Liquibase object, hence changes in name of change log table needed for
custom JpaEntityProvider are not reflected and use only the first
change log table name, i.e. the change log table of the main database.
2016-10-20 14:57:51 +02:00
mposolda 072ccb5c61 KEYCLOAK-3770 OIDC registration with id_token grant type should set publicClient flag to true 2016-10-20 14:10:53 +02:00
Stian Thorgersen 9c7e9da9fa Merge pull request #3392 from mstruk/KEYCLOAK-3740
KEYCLOAK-3740 kcreg.sh doesn't support symlinking
2016-10-20 13:09:38 +02:00
Marek Posolda 3abb44c1da Merge pull request #3390 from mposolda/master
KEYCLOAK-3768 Fix executing embedded apacheDS via maven exec plugin
2016-10-20 12:35:26 +02:00
Marko Strukelj 584d2e700d KEYCLOAK-3740 kcreg.sh doesn't support symlinking 2016-10-20 10:14:42 +02:00
Pulkit Gupta 8ee566f5fa Merge branch 'master' of github.com:pulgupta/keycloak 2016-10-20 13:39:54 +05:30
Pulkit Gupta 8e9db1be96 fixed null pointer exception when principal is null 2016-10-20 13:39:04 +05:30
mposolda acbb17a331 KEYCLOAK-3768 Fix executing embedded apacheDS via maven exec plugin 2016-10-20 10:08:33 +02:00
Pulkit Gupta 115f95d90e fixed null pointer exception when principal is null 2016-10-20 13:36:25 +05:30
Marek Posolda 9f5acccc4f Merge pull request #3384 from mposolda/master
KEYCLOAK-3753 Deploying app secured with OIDC to EAP6 results with Error
2016-10-20 08:32:58 +02:00
Stian Thorgersen e39d28517c Merge pull request #3381 from raehalme/KEYCLOAK-3755-master
KEYCLOAK-3755: isBearerTokenRequest and isBasicAuthRequest are now case-insensitive
2016-10-20 07:12:27 +02:00
Stian Thorgersen 8b5d171cb5 Merge pull request #3385 from mstruk/KEYCLOAK-3743
KEYCLOAK-3743 kcreg.sh without any options exists with 0
2016-10-20 06:41:13 +02:00
Stian Thorgersen cddacab297 Merge pull request #3388 from aaronharnly/aaronharnly-readme-typo
README.md typo fix
2016-10-20 06:37:38 +02:00
Stian Thorgersen dfc09b69a8 Merge pull request #3380 from stianst/KEYCLOAK-3364
KEYCLOAK-3364 Fix for dns that ends with digit
2016-10-20 06:24:50 +02:00
Stian Thorgersen d2e0432afb Merge pull request #3389 from patriot1burke/master
KEYCLOAK-3651
2016-10-20 06:24:15 +02:00
Bill Burke 34d80c9083 KEYCLOAK-3651 2016-10-19 20:28:33 -04:00
Bill Burke 06c08a9cff Merge pull request #3249 from gautric/master
KEYCLOAK-3602 - NPE into SAML DeploymentBuilder build
2016-10-19 20:08:16 -04:00
Bill Burke 9f00f693c6 Merge pull request #3387 from ssilvert/spelling-represenation
KEYCLOAK-3496: Spelling Error in Admin GUI Documentation
2016-10-19 19:59:41 -04:00
Bill Burke 1f00625930 Merge pull request #3386 from patriot1burke/master
test component import/export
2016-10-19 19:58:59 -04:00
Aaron Harnly 58d4d0596e README.md
Small typo fix: specficied -> specified
2016-10-19 17:29:23 -04:00
Stan Silvert ad59cd618e Merge pull request #3383 from ssilvert/duplicate-fed-provider
KEYCLOAK-2892: Bad error when create fed provider w/ same name.
2016-10-19 16:40:58 -04:00
Stan Silvert ac80f99e8c KEYCLOAK-3496: Spelling Error in Admin GUI Documentation 2016-10-19 16:33:59 -04:00
Bill Burke cdf7dd3a6c Merge pull request #3372 from patriot1burke/master
onCreate for Components
2016-10-19 16:21:20 -04:00
Bill Burke 97dd10883c test component import/export 2016-10-19 16:20:59 -04:00
Marek Posolda e6de2e7792 Merge pull request #3365 from puntogil/master
KEYCLOAK-3519 port to apache-ldap-api-1.0.0-M33
2016-10-19 21:51:44 +02:00
mposolda 7f825eb415 KEYCLOAK-3753 Deploying app secured with OIDC to EAP6 results with Error 2016-10-19 21:45:35 +02:00
Bill Burke a7f2130eae whoops 2016-10-19 15:29:21 -04:00
Marko Strukelj 85db8ea44f KEYCLOAK-3743 kcreg.sh without any options exists with 0 2016-10-19 21:23:31 +02:00
Marek Posolda 2acea2b2ee Merge pull request #3370 from mposolda/master
Client registration policies - polishing
2016-10-19 20:06:29 +02:00
Bill Burke 2391a00aa5 Merge remote-tracking branch 'upstream/master' 2016-10-19 14:01:35 -04:00
Bill Burke 934ea1c33c KEYCLOAK-3562 2016-10-19 14:01:21 -04:00
Stian Thorgersen 84bf546911 Merge pull request #3378 from stianst/KEYCLOAK-3756
KEYCLOAK-3756
2016-10-19 19:55:57 +02:00
Stian Thorgersen 473bd5fc78 Merge pull request #3377 from stianst/KEYCLOAK-3706
KEYCLOAK-3706
2016-10-19 19:55:36 +02:00
Stan Silvert 9d098e9068 KEYCLOAK-2892: Bad error when create fed provider w/ same name. 2016-10-19 13:32:28 -04:00
Stian Thorgersen 8c1e5c5aae Merge pull request #3374 from mstruk/KEYCLOAK-3742
KEYCLOAK-3742 kcreg config prints null
2016-10-19 19:27:57 +02:00
Stian Thorgersen af5e8f7b09 Merge pull request #3376 from stianst/KEYCLOAK-1862
KEYCLOAK-1862
2016-10-19 19:27:29 +02:00
Stian Thorgersen 681cb39862 Merge pull request #3375 from stianst/KEYCLOAK-3754
KEYCLOAK-3754
2016-10-19 19:27:01 +02:00
Pedro Igor 7dee39bbaa Merge pull request #3302 from brewers/master
KEYCLOAK-3703 Fix entitlement function call in authorization
2016-10-19 14:47:32 -02:00
Thomas Raehalme e8ce9704c1 isBearerTokenRequest and isBasicAuthRequest is now case-insensitive. 2016-10-19 19:41:59 +03:00
Stian Thorgersen ffce2023c0 KEYCLOAK-3364 Fix for dns that ends with digit 2016-10-19 18:41:43 +02:00
Stian Thorgersen 320110abaa KEYCLOAK-3756 2016-10-19 18:00:33 +02:00
Stian Thorgersen f9a8f805c8 KEYCLOAK-3706
Using invalid Registration Access Token results in 404 rather than 401
2016-10-19 17:55:05 +02:00
mposolda 3779bfb6b4 KEYCLOAK-3666 client registration policies - polishing 2016-10-19 17:45:23 +02:00
mposolda 4136d76b7e Minor javadoc update 2016-10-19 17:45:23 +02:00
mposolda 964cd50f1d KEYCLOAK-3666 Added client reg policies for maxClients and clientDisabled 2016-10-19 17:45:23 +02:00
Stian Thorgersen 61fa152e62 Merge pull request #3277 from ahus1/KEYCLOAK-2977-spring-cloud-rebinder-fix
KEYCLOAK-2977: fix re-binding problem with spring-cloud
2016-10-19 17:32:40 +02:00
Stian Thorgersen 7f04dd20b3 KEYCLOAK-1862 2016-10-19 17:28:22 +02:00
Stian Thorgersen 9b5277d83d KEYCLOAK-3754
Identity providers screen is missing dropdown with providers in RH-SSO theme
2016-10-19 17:24:27 +02:00
Stian Thorgersen b2ea49212c Merge pull request #3373 from stianst/KEYCLOAK-3625
KEYCLOAK-3625 Fix url
2016-10-19 17:08:22 +02:00
Stian Thorgersen bd8e435164 KEYCLOAK-3625 Fix url 2016-10-19 17:07:01 +02:00
Pavel Drozd f8f9ebf588 Merge pull request #3362 from mhajas/KEYCLOAK-3654
KEYCLOAK-3654 Fix NullPointerException in lambda
2016-10-19 16:39:03 +02:00
Marko Strukelj 79f53c5513 KEYCLOAK-3742 kcreg config prints null
- proper no args check across the board
 - added --help option to all commands
2016-10-19 16:36:25 +02:00
Alexander Schwartz c2692cc0ac KEYCLOAK-2977: fix re-binding problem with spring-cloud 2016-10-19 16:07:28 +02:00
Bill Burke fdb8c04ac9 Merge remote-tracking branch 'upstream/master' 2016-10-19 10:06:48 -04:00
Bill Burke 46e32b36d2 onCreate for Components 2016-10-19 10:06:09 -04:00
Stian Thorgersen 36c367a3bc Merge pull request #3369 from stianst/KEYCLOAK-3625
KEYCLOAK-3625
2016-10-19 15:56:57 +02:00
Stian Thorgersen 1b24d2edd8 KEYCLOAK-3625 More work on the issue 2016-10-19 14:21:50 +02:00
sebastien blanc 32df5225cf add check on list size 2016-10-19 14:21:41 +02:00
sebastien blanc 116f5f5795 KEYCLOAK-3625: conform to oidc specs 2016-10-19 14:21:41 +02:00
Stian Thorgersen bbc1d26b72 Merge pull request #3367 from stianst/KEYCLOAK-3745
KEYCLOAK-3745 Change attributes in user rep
2016-10-19 14:01:39 +02:00
Stian Thorgersen 6f43c1f09f Merge pull request #3366 from hmlnarik/KEYCLOAK-3698
KEYCLOAK-3698 Manual migration - custom JpaEntityProvide changelog table
2016-10-19 14:01:23 +02:00
Stan Silvert 3c8aaaa61f Merge pull request #3353 from ssilvert/confirm-flow-delete
KEYCLOAK-2918: Confirm before custom auth flow deletion
2016-10-19 07:55:51 -04:00
Pavel Drozd e2b42b24d0 Merge pull request #3361 from vramik/KEYCLOAK-3619
KEYCLOAK-3619 minor fix
2016-10-19 12:15:59 +02:00
Stian Thorgersen 4efe12cb93 KEYCLOAK-3745 Change attributes in user rep 2016-10-19 12:15:13 +02:00
Hynek Mlnarik 49d3d3f6e3 KEYCLOAK-3698 Manual migration - custom JpaEntityProvide changelog table
Reflect in the SQL script that custom JpaEntityProviders have their
own changelog tables, and issue DDL commands to create them when
initializing a new database.
2016-10-19 12:08:14 +02:00
Stian Thorgersen 53fcc1bec2 Merge pull request #3359 from stianst/KEYCLOAK-3737
KEYCLOAK-3737
2016-10-19 12:06:12 +02:00
gil 490b7f6ba4 KEYCLOAK-3519 port to apache-ldap-api-1.0.0-M33 2016-10-19 11:29:31 +02:00
Cherian Mathew 2bba6af6d9 Include programmatically created resources in the resource cache 2016-10-19 11:04:22 +02:00
mhajas 218065a349 KEYCLOAK-3654 Fix jwks-url in integration-arquillian 2016-10-19 10:27:53 +02:00
Vlasta Ramik 98aa516d74 KEYCLOAK-3619 minor fix 2016-10-19 09:59:30 +02:00
emilienbondu 0d3a50411e Move licence at the top of the file. 2016-10-19 09:57:07 +02:00
Stian Thorgersen 24715eabec KEYCLOAK-3737
Migration problem from version 1.9.8 to 2.2.1
2016-10-19 09:06:55 +02:00
Stian Thorgersen f2f508ac2e Merge pull request #3357 from stianst/KEYCLOAK-3107
KEYCLOAK-3017 Expose Location header in cors request to admin endpoint
2016-10-19 08:45:18 +02:00
Stian Thorgersen 13220e1d38 Merge pull request #3355 from stianst/KEYCLOAK-2699
KEYCLOAK-2699 Potential for NPE in DirImportProvider.getRealmsToImport
2016-10-19 07:35:54 +02:00
Stian Thorgersen 116027bd7b Merge pull request #3354 from stianst/KEYCLOAK-2488
KEYCLOAK-2488 Token introspection returns wrong response for invalid …
2016-10-19 07:33:25 +02:00
Stian Thorgersen 14a51e589d Merge pull request #3325 from mstruk/cli-reg
KEYCLOAK-2084 Client Registration CLI
2016-10-19 06:33:45 +02:00
Stian Thorgersen 36433bb8ff Merge pull request #3310 from ramunask/lt-translations-for-2.3
KEYCLOAK-3695 Lithuanian locale update for 2.3 version
2016-10-19 06:31:46 +02:00
Stian Thorgersen edb66d6fd3 Tweak travis 2016-10-19 06:22:12 +02:00
Stian Thorgersen a0bbb1e7a2 Merge pull request #3356 from stianst/KEYCLOAK-3707
KEYCLOAK-3707 Test retrieving missing client with registration access…
2016-10-19 06:18:43 +02:00
Stian Thorgersen a33997976f KEYCLOAK-3017 Expose Location header in cors request to admin endpoint 2016-10-18 21:27:46 +02:00
Stian Thorgersen 3250562d28 KEYCLOAK-3707 Test retrieving missing client with registration access token 2016-10-18 20:56:40 +02:00
Stian Thorgersen 0a8d1e28f1 KEYCLOAK-2699 Potential for NPE in DirImportProvider.getRealmsToImport 2016-10-18 20:31:51 +02:00
Stian Thorgersen 29538332d9 KEYCLOAK-2488 Token introspection returns wrong response for invalid token 2016-10-18 20:28:14 +02:00
Bill Burke d941e07169 Merge pull request #3350 from patriot1burke/master
federated import/export to json
2016-10-18 14:15:25 -04:00
Pavel Drozd ba1fa34c56 Merge pull request #3330 from mhajas/KEYCLOAK-3268
KEYCLOAK-3268 KEYCLOAK-3100 Validate SAML Idp and SP metadata
2016-10-18 20:08:13 +02:00
Stan Silvert 5cef34d61a KEYCLOAK-2918: Confirm before custom auth flow deletion 2016-10-18 13:44:13 -04:00
Stian Thorgersen a87c08416d Merge pull request #3346 from hmlnarik/KEYCLOAK-3588
KEYCLOAK-3698 Make manual update scripts play nicely with custom JpaEntityProviders
2016-10-18 19:41:02 +02:00
Stian Thorgersen 4f695cfe76 Merge pull request #3347 from vramik/KEYCLOAK-3619
KEYCLOAK-3619 Update default datasource definition to non-XA
2016-10-18 19:40:34 +02:00
Stian Thorgersen e41d11877f Merge pull request #3349 from stianst/KEYCLOAK-2741
KEYCLOAK-2741
2016-10-18 19:39:54 +02:00
Stian Thorgersen 3c08153e33 Merge pull request #3348 from stianst/KEYCLOAK-3358
KEYCLOAK-3358
2016-10-18 19:39:32 +02:00
Marek Posolda c9507aa5c7 Merge pull request #3351 from mposolda/master
KEYCLOAK-3653 CORS headers not sent in certs endpoint
2016-10-18 19:12:01 +02:00
mposolda b62e6e2751 KEYCLOAK-3653 CORS headers not sent in certs endpoint 2016-10-18 16:57:06 +02:00
Stian Thorgersen 74dad004e3 KEYCLOAK-2741
Don't remove KEYCLOAK_REMEMBERME cookie when sso session expires.
2016-10-18 16:14:36 +02:00
Bill Burke 2199df71bf Merge remote-tracking branch 'upstream/master' 2016-10-18 10:14:00 -04:00
Bill Burke 4182e4d92a federated import/export 2016-10-18 10:13:51 -04:00
Stian Thorgersen 1583937295 KEYCLOAK-3358
Welcome page hardcoded to incorrect URL & references incorrect script
2016-10-18 16:07:44 +02:00
Marek Posolda 940237ee78 Merge pull request #3304 from hmlnarik/KEYCLOAK-2964
KEYCLOAK-2964 - Fix groups not applied for authentication of admin operations
2016-10-18 14:50:12 +02:00
Marek Posolda 3986ce2ce0 Merge pull request #3345 from mposolda/master
KEYCLOAK-3499 Fixes in OIDCProtocolMapper support for includeInUserInfo
2016-10-18 14:28:29 +02:00
Stian Thorgersen 4b56743788 Merge pull request #3343 from stianst/KEYCLOAK-2884
KEYCLOAK-2884 Remove ClientTemplateResource.getKeycloakApplication()
2016-10-18 14:08:50 +02:00
Hynek Mlnarik 658988ccd0 KEYCLOAK-3588 Make manual update scripts play nicely with custom JpaEntityProviders 2016-10-18 13:59:24 +02:00
mposolda a7287aad36 KEYCLOAK-3499 More fixes for IncludeInUserInfo. Fixing tests and migration 2016-10-18 13:09:30 +02:00
Thomas Darimont c3b577de11 KEYCLOAK-3499 Revise OIDCProtocolMapper support
Moved methods `transformUserInfoToken`, `transformAccessToken`,
`transformIDToken` to the `AbstractOIDCProtocolMapper` base class
in order to reduce code duplication.
Previously every mapper implemented at least one or two of those
methods with exactly the same code.
Having those methods in the base class ensures that the code is the
same for all mappers. Since the mentioned methods are declared
on the `OIDCIDTokenMapper`, `OIDCAccessTokenMapper` and `UserInfoTokenMapper`
interfaces `AbstractOIDCProtocolMapper` implementations can now choose
how they should be handled by the `TokenManager`
by implementing the desired set of interfaces `*TokenMapper`-interfaces.

I think this provides a good balance between ease of use, reduced code duplication
and ensured backwards compatiblity.
Existing protocol mapper implementations will still work since they just implement
their own logic for `transformUserInfoToken`, `transformAccessToken`,
`transformIDToken`.

The "claim" information provided by a `ProtocolMapper` to a `*Token` can now
be provided by overriding the `AbstractOIDCProtocolMapper.setClaim` method.

Adapted all eligible ProtocolMapper implementations within the
`org.keycloak.protocol.oidc.mappers` package accordingly.
2016-10-18 13:09:30 +02:00
Marko Strukelj c912f941e7 KEYCLOAK-2084 Client Registration CLI 2016-10-18 12:33:02 +02:00
Vlasta Ramik 041413d8de KEYCLOAK-3619 Update default datasource definition to non-XA 2016-10-18 12:12:41 +02:00
Marek Posolda 386bf8d39e Merge pull request #3344 from hmlnarik/KEYCLOAK-3732
KEYCLOAK-3732 Include 2.3.0 DB changelog for DB2
2016-10-18 10:29:01 +02:00
Hynek Mlnarik 2ea93b8a8b KEYCLOAK-3732 Include 2.3.0 DB changelog for DB2 2016-10-18 09:53:27 +02:00
Stian Thorgersen dfcd598912 Merge pull request #3341 from stianst/KEYCLOAK-3727
KEYCLOAK-3727 Fix link on logo in admin console
2016-10-18 09:49:55 +02:00
Stian Thorgersen e157a60a23 KEYCLOAK-2884 Remove ClientTemplateResource.getKeycloakApplication() 2016-10-18 09:01:24 +02:00
Marek Posolda 2fd680092a Merge pull request #3336 from mposolda/master
KEYCLOAK-3719 Add 'options' to ProviderConfigProperty and use it for …
2016-10-18 08:33:26 +02:00
Stian Thorgersen 37affb1e9c Merge pull request #3342 from hmlnarik/KEYCLOAK-3588
KEYCLOAK-3588 Update comment with related KC issue
2016-10-18 08:27:40 +02:00
Hynek Mlnarik 9df3091b22 KEYCLOAK-3588 Update comment with related KC issue 2016-10-18 08:17:18 +02:00
Stian Thorgersen 728e68ede5 KEYCLOAK-3727 Fix link on logo in admin console 2016-10-18 07:43:52 +02:00
Pavel Drozd 4cbc665592 Merge pull request #3340 from vramik/migration
KEYCLOAK-3589 Add support for manual upgrade of database schema to te…
2016-10-18 07:39:42 +02:00
Pavel Drozd d295ec709b Merge pull request #3293 from zschwarz/oidc-filter
KEYLOAK-3663 OIDC servlet filter
2016-10-18 07:35:17 +02:00
Pavel Drozd 90097e9aea Merge pull request #3318 from mhajas/KEYCLOAK-3654
KEYCLOAK-3654 Fix jwks-url in integration-arquillian
2016-10-18 07:32:50 +02:00
Stian Thorgersen 07dcfeb330 Merge pull request #3339 from stianst/KEYCLOAK-3266
KEYCLOAK-3266
2016-10-18 07:09:04 +02:00
Stian Thorgersen 3feec3ee68 Merge pull request #3338 from stianst/KEYCLOAK-3728
KEYCLOAK-3728
2016-10-18 07:08:25 +02:00
Stian Thorgersen f66eb8b1ef KEYCLOAK-3266
password policy NotUsername breaks new user registration
2016-10-17 21:38:14 +02:00
mposolda 00879b39b7 KEYCLOAK-3719 Add 'options' to ProviderConfigProperty and use it for 'List' type instead of defaultValue 2016-10-17 21:34:21 +02:00
Stian Thorgersen 77499be8d2 KEYCLOAK-3728
Disable script based authenticator in product profile
2016-10-17 21:16:51 +02:00
Stian Thorgersen 4ce5f9e087 Moved version property for jboss-integration-platform to Keycloak parent 2016-10-17 19:55:43 +02:00
Stian Thorgersen f62e66681e Merge branch 'KEYCLOAK-3628' of https://github.com/pedroigor/keycloak 2016-10-17 19:47:05 +02:00
Stian Thorgersen 06ad1537c8 Merge pull request #3323 from hmlnarik/KEYCLOAK-3639
KEYCLOAK-3639 Drop default value that prevents MSSQL update
2016-10-17 19:40:05 +02:00
Stian Thorgersen 64339aaca7 Merge pull request #3317 from stianst/KEY-ROTATION
Updated labels for java keystore provider config
2016-10-17 19:39:47 +02:00
Stian Thorgersen 9193142bb9 Merge pull request #3305 from sebastienblanc/KEYCLOAK-3683
KEYCLOAK-3683: Remove trustore and trustore-password check
2016-10-17 19:39:02 +02:00
Stian Thorgersen 2ed6067de0 Merge pull request #3290 from hmlnarik/KEYCLOAK-3655
KEYCLOAK-3655: Fix for unexpected server error when adding duplicate auth flow
2016-10-17 19:31:43 +02:00
Stan Silvert 98a9c50d53 Merge pull request #3256 from jsight/ng2_httpmodule_extension
Working now!  Thank you.
2016-10-17 13:27:42 -04:00
Stian Thorgersen 144898c0d2 Merge pull request #3262 from vramik/KEYCLOAK-3615
KEYCLOAK-3615 Resolve warnings while building the effective model
2016-10-17 19:09:30 +02:00
Stian Thorgersen 3b2f7630bb Merge pull request #3320 from hmlnarik/KEYCLOAK-3698
KEYCLOAK-3698: Add creation of DB changelog to SQL script
2016-10-17 18:55:45 +02:00
Stian Thorgersen 7c09b0c7b4 Merge pull request #3319 from hmlnarik/KEYCLOAK-3588
KEYCLOAK-3588: DB up-to-date check should not modify DB
2016-10-17 18:54:59 +02:00
Stian Thorgersen af508232dc Merge pull request #3328 from hmlnarik/KEYCLOAK-3574
KEYCLOAK-3574 Add missing check for changes in RealmPasswordPolicyCtrl
2016-10-17 18:51:34 +02:00
Stian Thorgersen d22f45f0d2 Merge pull request #3335 from stianst/KEYCLOAK-3635
KEYCLOAK-3635 Not possible to filter debug/trace logging
2016-10-17 18:50:10 +02:00
Stian Thorgersen cefb1742a1 Merge pull request #3331 from stianst/KEYCLOAK-3665
KEYCLOAK-3665 Remove theme module and make built-in theme resources r…
2016-10-17 18:48:09 +02:00
Stian Thorgersen b320eb8fc7 KEYCLOAK-3635 Not possible to filter debug/trace logging 2016-10-17 16:12:14 +02:00
Pedro Igor 5d836fefc5 [KEYCLOAK-3628] - Using JBPM/BRMS BOM to resolve dependencies versions 2016-10-17 12:05:44 -02:00
Marek Posolda dc13c701f5 Merge pull request #3329 from mposolda/master
KEYCLOAK-3626 - CreatedDate and lastUpdatedDate on user consent
2016-10-17 15:49:22 +02:00
Stian Thorgersen e61191edb5 KEYCLOAK-3570 Reduce the size of themes 2016-10-17 14:47:55 +02:00
emilienbondu 3bed84d712 fix bug https://issues.jboss.org/browse/KEYCLOAK-3474 2016-10-17 14:42:46 +02:00
Geir Ole Hiåsen Stevning 95f62c6aeb KEYCLOAK-3626 - CreatedDate and lastUpdatedDate on user consent 2016-10-17 13:53:12 +02:00
Stian Thorgersen 160e26b699 KEYCLOAK-3665 Remove theme module and make built-in theme resources read-only 2016-10-17 13:47:55 +02:00
Marek Posolda 4593d89a05 Merge pull request #3327 from mposolda/master
KEYCLOAK-3716 Unable to start Keycloak on wildfly
2016-10-17 13:33:50 +02:00
Stan Silvert 8ffb1ecc7d Merge pull request #3324 from ssilvert/remember-selected-flow
KEYCLOAK-2295: Flow selection forgotten when clicking to a sibling tab.
2016-10-17 07:30:51 -04:00
Stan Silvert a9ce6b9f81 Merge pull request #3321 from ssilvert/pagination
KEYCLOAK-3507: Pagination for clients and roles in admin console
2016-10-17 07:26:04 -04:00
Marek Posolda c62c60c723 Merge pull request #3326 from hmlnarik/KEYCLOAK-3664
KEYCLOAK-3664 Fix for NPE in subsystem when secure-deployment is undefined for a particular deployment
2016-10-17 13:23:02 +02:00
mhajas 5d57c29fae KEYCLOAK-3268 KEYCLOAK-3100 Validate SAML Idp and SP metadata 2016-10-17 13:22:00 +02:00
Hynek Mlnarik c2684a2b36 KEYCLOAK-3574 Add missing check for changes in RealmPasswordPolicyCtrl 2016-10-17 12:37:46 +02:00
mposolda 5732b2c58f KEYCLOAK-3716 Unable to start Keycloak on wildfly 2016-10-17 12:22:33 +02:00
Vlasta Ramik b0448d1b6f KEYCLOAK-3589 Add support for manual upgrade of database schema to testsuite 2016-10-17 11:32:43 +02:00
Hynek Mlnarik 4a19d4cdc1 KEYCLOAK-3664 Fix for NPE in subsystem when secure-deployment is undefined for a particular deployment 2016-10-17 09:19:44 +02:00
Marek Posolda acdc33b2fa Merge pull request #3322 from mposolda/cl-reg-policy-rebase
KEYCLOAK-3666 Dynamic client registration policies
2016-10-14 21:49:45 +02:00
Stan Silvert 8a7983bf5a KEYCLOAK-2295: Flow selection forgotten when clicking to a sibling tab. 2016-10-14 15:11:50 -04:00
mposolda 18e0c0277f KEYCLOAK-3666 Dynamic client registration policies 2016-10-14 20:20:40 +02:00
Hynek Mlnarik 8bdd8f4274 KEYCLOAK-3639 Drop default value that prevents MSSQL update 2016-10-14 17:51:35 +02:00
Bill Burke 1c0abbd722 Merge pull request #3315 from patriot1burke/master
import and sync spi
2016-10-14 10:12:42 -04:00
Stan Silvert 7a6324e02c KEYCLOAK-3507: Pagination for clients and roles in admin console 2016-10-14 08:35:46 -04:00
Hynek Mlnarik f256e2b102 KEYCLOAK-3588: DB up-to-date check should not modify DB
The DB up-to-date check uses Liquibase.listUnrunChangeSets() that in
its available variants unconditionally creates a DatabaseChangeLog
tables. Until the variant of listUnrunChangeSets() that suppresses this
behaviour is made public [1] (currently it is protected), workaround
has been implemented that invokes less invasive variant of
listUnrunChangeSets() via reflection.

[1] https://liquibase.jira.com/browse/CORE-2919
2016-10-14 14:29:01 +02:00
Hynek Mlnarik 3d47ab3665 KEYCLOAK-3698: Add creation of DB changelog to SQL script
Creation of database table DatabaseChangeLog was omitted from SQL
script which prevented creation of the database from scratch. The fix
adds DDL commands to create the table to the output SQL script in case
of empty database initialization.

Please note that DatabaseChangeLogLock is intentionally omitted. It is
created automatically before the update is even executed because a lock
is acquired (thus the table is properly created if it does not exist)
before check for up-to-dateness of database and potential migration in
KeycloakApplication constructor.
2016-10-14 14:27:07 +02:00
mhajas e08725e730 KEYCLOAK-3654 Fix jwks-url in integration-arquillian 2016-10-14 12:50:56 +02:00
Stian Thorgersen 422805b511 Updated labels for java keystore provider config 2016-10-14 10:36:17 +02:00
Stian Thorgersen 1f3d29964f Merge pull request #3314 from stianst/KEY-ROTATION
KEYCLOAK-905 More testing
2016-10-14 09:52:31 +02:00
Bill Burke 8c8a39c833 sync and import 2016-10-13 20:49:02 -04:00
Bill Burke 0938390654 sync and import 2016-10-13 20:38:49 -04:00
Jess Sightler 635e20a510 Fixed a concurrency bug that would cause periodic timeouts 2016-10-13 19:08:45 -04:00
Stian Thorgersen 4e245d428c KEYCLOAK-905 More testing 2016-10-13 20:44:33 +02:00
Stian Thorgersen cec13dae1f Merge pull request #3313 from guerinth/KEYCLOAK-3700
French translation for firstname label
2016-10-13 19:38:24 +02:00
Stian Thorgersen 2d0866118e Merge pull request #3303 from pedroigor/KEYCLOAK-3628
[KEYCLOAK-3628] - Spliting org.drools module
2016-10-13 19:36:04 +02:00
Stian Thorgersen 3bbbf30e64 Merge pull request #3312 from hmlnarik/KEYCLOAK-3697
KEYCLOAK-3697: Evaluate preconditions when generating SQL script
2016-10-13 19:27:44 +02:00
GUERIN Thierry e344dddf4b French translation for firstname label 2016-10-13 16:15:20 +02:00
Hynek Mlnarik 6578ce73a1 KEYCLOAK-3697: Evaluate preconditions when generating SQL script
Plus minor related change - replace deprecated call with equivalent
supported, add javadoc

Further info:
* http://forum.liquibase.org/topic/unexpected-behaviour-of-preconditions-with-updatesql
* http://stackoverflow.com/questions/17671923/liquibase-migrate-sql-does-not-check-precondtions
2016-10-13 13:00:33 +02:00
Stian Thorgersen a006e1fad1 Merge pull request #3311 from stianst/KEY-ROTATION
EYCLOAK-905
2016-10-13 12:38:55 +02:00
Stian Thorgersen d2cae0f8c3 KEYCLOAK-905
Realm key rotation for OIDC
2016-10-13 11:19:52 +02:00
Pavel Drozd 1e51952006 Merge pull request #3307 from mhajas/KEYCLOAK-3690
KEYCLOAK-3690 Fix highest directory on windows
2016-10-13 08:27:01 +02:00
Pavel Drozd f868aa7fbe Merge pull request #3308 from mhajas/KEYCLOAK-3694
KEYCLOAK-3694 Fix timeSkewTest on windows
2016-10-13 08:26:35 +02:00
mhajas fb99f673fc KEYCLOAK-3690 Fix highest directory on windows 2016-10-12 15:15:21 +02:00
mhajas 9dbd1149cf KEYCLOAK-3694 Fix timeSkewTest on windows 2016-10-12 15:14:24 +02:00
Pavel Drozd 455db1add4 Merge pull request #3309 from vramik/migration
KEYCLOAK-3489 KEYCLOAK-3609
2016-10-12 14:35:24 +02:00
Ramunas Kraujutis b6e0cb374d Lithuanian locale update for 2.3 version 2016-10-12 14:01:30 +03:00
Vlasta Ramik bc2eb2b9ea KEYCLOAK-3489 KEYCLOAK-3609 2016-10-12 12:28:56 +02:00
Bill Burke fbaa731dfa import spi 2016-10-11 18:33:59 -04:00
Hynek Mlnarik 03cf9bad2e KEYCLOAK-2964 - Fix groups not applied for authentication of admin operations 2016-10-11 15:21:38 +02:00
sebastienblanc f5a5fc3458 KEYCLOAK-3683: Remove trustore and trustore-password check 2016-10-11 15:19:31 +02:00
Mohit Suman 0e33e4035f Pagination Directive for clients and roles in admin console 2016-10-10 14:57:39 -04:00
Mohit Suman c4f0053dd9 add pagination custom css 2016-10-10 14:57:26 -04:00
Pedro Igor 2b589186ed [KEYCLOAK-3628] - Spliting org.drools module 2016-10-10 13:21:51 +02:00
zschwarz 4bd38bb9c1 KEYLOAK-3663 OIDC servlet filter 2016-10-10 10:44:07 +02:00
Cherian Mathew ac245d3c4b Fix entitlement function call in authorization 2016-10-09 11:19:02 +02:00
Stan Silvert a1fd85c52a Merge pull request #3300 from ssilvert/flow-to-browser
KEYCLOAK-3679: Add new flow, default (browser) flow always shown.
2016-10-07 18:13:06 -04:00
Stan Silvert 06dcf99b42 KEYCLOAK-3679: Add new flow, default (browser) flow always shown. 2016-10-07 14:32:23 -04:00
Paolo Antinori 0485f5c43d KEYCLOAK-3678 - Fuse examples, added Camel RestDSL 2016-10-07 14:41:57 +02:00
Stan Silvert 6acd9cdf1d Merge pull request #3298 from ssilvert/blanks-in-dropdown
KEYCLOAK-3673: Blank items in IDP's Post Login Flow selector
2016-10-07 08:23:06 -04:00
Stan Silvert 68ca1849bf KEYCLOAK-3673: Blank items in IDP's Post Login Flow selector 2016-10-06 17:43:13 -04:00
Bill Burke 7413f46e1b Merge pull request #3297 from patriot1burke/master
KEYCLOAK-3671
2016-10-06 16:26:44 -04:00
Bill Burke db05dc6ee4 KEYCLOAK-3671 2016-10-06 15:02:15 -04:00
Bill Burke fbb65fa072 KEYCLOAK-3671 2016-10-06 14:56:02 -04:00
Bill Burke 0b5bcad5f6 Merge pull request #3295 from patriot1burke/master
initial sync/import spi
2016-10-06 14:51:20 -04:00
Bill Burke 74325fe133 initial sync/import spi 2016-10-06 14:48:53 -04:00
Bill Burke 42e93742fa Merge pull request #3289 from patriot1burke/master
refactor CredentialValidationOutput apis
2016-10-05 09:40:18 -04:00
Hynek Mlnarik cfbc9cf14b KEYCLOAK-3655: Fix for unexpected server error when adding duplicate auth flow 2016-10-05 13:57:02 +02:00
Bill Burke 67d3730c6d Merge remote-tracking branch 'upstream/master' 2016-10-04 20:13:16 -04:00
Stan Silvert 36aa3da3d0 Merge pull request #3288 from ssilvert/sort-role-mappings
KEYCLOAK-3649: Sort role lists in Role Mappings screen.
2016-10-04 20:04:13 -04:00
Bill Burke c5600e888d revactor CredentialValidationOutput apis 2016-10-04 17:26:45 -04:00
Stan Silvert 38d1dea65e Merge pull request #3287 from ssilvert/empty-state-user-fed
KEYCLOAK-3650: Empty state for User Federation
2016-10-04 17:19:57 -04:00
Stan Silvert d653437830 KEYCLOAK-3649: Sort role lists in Role Mappings screen. 2016-10-04 17:17:03 -04:00
Stan Silvert b5a1b0bc50 KEYCLOAK-3650: Empty state for User Federation 2016-10-04 15:10:13 -04:00
Bill Burke a89dbabc92 Merge pull request #3286 from patriot1burke/master
remove UserCredValueModel and hold hash providers
2016-10-04 14:07:26 -04:00
Bill Burke 4af0976194 remove UserCredValueModel and hold hash providers 2016-10-04 12:34:15 -04:00
Marek Posolda 46038b457c Merge pull request #3285 from mposolda/pk-rotation
KEYCLOAK-3643 minor README update
2016-10-04 16:42:02 +02:00
mposolda 7af125247c KEYCLOAK-3643 minor README update 2016-10-04 16:41:15 +02:00
Marek Posolda 442e337668 Merge pull request #3284 from mposolda/pk-rotation
KEYCLOAK-3643 Update fuse-admin README about hawtio integration
2016-10-04 15:53:59 +02:00
mposolda e31c2b92a9 KEYCLOAK-3643 Update fuse-admin README about hawtio integration 2016-10-04 15:53:26 +02:00
Marek Posolda d27a23cbe3 Merge pull request #3283 from mposolda/pk-rotation
KEYCLOAK-3564 Update demo examples with public key rotation
2016-10-04 15:25:17 +02:00
Marek Posolda b1e5bc8a30 Merge pull request #3278 from paoloantinori/unify_fuse_sample_config
KEYCLOAK-3643 - Fuse examples - refactoring
2016-10-04 15:25:02 +02:00
mposolda bc916a1909 KEYCLOAK-3564 Update demo examples with public key rotation 2016-10-04 14:05:01 +02:00
Marek Posolda f8c236afa8 Merge pull request #3282 from mposolda/pk-rotation
KEYCLOAK-3646 Missing attributes in AS7 adapter subsystem
2016-10-04 11:08:09 +02:00
Marek Posolda c32cf51808 Merge pull request #3254 from didiez/master
KEYCLOAK-3608 Update existing user single attribute removes all other attributes from user
2016-10-04 08:43:22 +02:00
mposolda a60dd48300 KEYCLOAK-3646 Missing attributes in AS7 adapter subsystem 2016-10-04 08:30:35 +02:00
Stan Silvert 90b5ad5bb3 Merge pull request #3281 from ssilvert/delte-multiple-users-updated
KEYCLOAK-3633: Unable to delete multiple users without re-entering search
2016-10-03 18:54:26 -04:00
Jess Sightler cab9740221 Fixed token handling for cases where options is null 2016-10-03 18:08:36 -04:00
Jess Sightler 5b1b63e364 Removed irrelevant comment 2016-10-03 17:57:08 -04:00
Jess Sightler e2094065b2 Switched to observable import that contains other operators 2016-10-03 17:54:52 -04:00
Jess Sightler abb0bbd815 Angular 2: Added an extension to the Http class to automatically retrieve Keycloak tokens 2016-10-03 17:54:52 -04:00
Stan Silvert 9b10110dcb KEYCLOAK-3633: Don't search on initial page load. 2016-10-03 15:02:11 -04:00
Stan Silvert ab8803a5d6 KEYCLOAK-3633: Unable to delete multiple users without re-entering search. 2016-10-03 14:42:53 -04:00
Marek Posolda c15a425317 Merge pull request #3280 from mposolda/pk-rotation
Renamed KeyStorageProvider to PublicKeyStorageProvider. Subsystem support.
2016-10-03 19:37:18 +02:00
mposolda 81e773688f KEYCLOAK-3644 demo-dist broken due to broken datasource element in standalone.xml 2016-10-03 17:42:20 +02:00
mposolda d71fadabeb KEYCLOAK-3634 Allow adapter subsystem to just inject dependencies 2016-10-03 17:38:41 +02:00
mposolda 7447ca7b58 KEYCLOAK-3564 Added token-minimum-time-to-live and min-time-between-jwks-requests to adapter subsystem 2016-10-03 16:06:45 +02:00
mposolda 0f9798a10d KEYCLOAK-3493 KEYCLOAK-3532 Renamed KeyStorageProvider to PublicKeyStorageProvider 2016-10-03 15:23:50 +02:00
Marek Posolda d12f157299 Merge pull request #3279 from thomasdarimont/issue/KEYCLOAK-3642-remove-dependency-on-commons-io
KEYCLOAK-3642 Favor StreamUtil over IOUTils in ScriptBasedAuthenticatorFactory
2016-10-03 15:19:37 +02:00
Stian Thorgersen f1156a49cf Merge pull request #3273 from vramik/KEYCLOAK-3619
KEYCLOAK-3619 Update default datasource definition to XA
2016-10-03 13:54:20 +02:00
Thomas Darimont c852d6d817 KEYCLOAK-3642 Favor StreamUtil over IOUTils in ScriptBasedAuthenticatorFactory
The dependency on commons-io through the use of IOUtils in
ScriptBasedAuthenticatorFactory resulted in
NoClassDefFoundError org/apache/commons/io/IOUtils when building the
keycloak-distribution.

We now use the StreamUtil from keycloak-common to avoid this dependency.
2016-10-03 13:33:53 +02:00
Stian Thorgersen 7d038e72c9 Merge pull request #3272 from abstractj/KEYCLOAK-3638
KEYCLOAK-3638: UnixUserTest will fails on Windows
2016-10-03 13:19:11 +02:00
Paolo Antinori 654601c92c KEYCLOAK-3643 - Fuse examples - refactoring 2016-10-03 12:48:49 +02:00
Bill Burke a743600b34 Merge pull request #3275 from patriot1burke/master
mongo impl for user fed storage
2016-10-01 13:30:31 -04:00
Bill Burke d4c3fae546 merge conflicts 2016-09-30 19:19:12 -04:00
Bill Burke 6a4e413bf4 final mongo fixes 2016-09-30 19:08:34 -04:00
Marek Posolda b0da7dc72f Merge pull request #3274 from mposolda/pk-rotation
KEYCLOAK-3493 KEYCLOAK-3532 Added KeyStorageProvider. Support key rot…
2016-09-30 22:54:26 +02:00
Bill Burke 110f6ad549 mongo fed 2016-09-30 16:48:59 -04:00
mposolda f9a0abcfc4 KEYCLOAK-3493 KEYCLOAK-3532 Added KeyStorageProvider. Support key rotation for OIDC clients and identity providers with JWKS url. 2016-09-30 21:28:23 +02:00
Pavel Drozd 6e00587468 Merge pull request #3264 from vmuzikar/KEYCLOAK-3616
KEYCLOAK-3616 Add integration tests for Node.js adapter
2016-09-30 14:33:07 +02:00
Bruno Oliveira 5093dd94e2 KEYCLOAK-3638: UnixUserTest will fails on Windows 2016-09-30 08:19:56 -03:00
Vlasta Ramik 550ec2ff51 Update default datasource definition to XA 2016-09-30 12:50:17 +02:00
Stian Thorgersen ab0c075242 Merge pull request #3270 from abstractj/gitignore
Ignore dependency-reduced-pom.xml created by Maven Shade plugin
2016-09-30 08:56:27 +02:00
Pavel Drozd bcf5ac56cd Merge pull request #3266 from mhajas/KEYCLOAK-3586
KEYCLOAK-3586 Adding tests for updateToken and timeSkew
2016-09-29 11:13:26 +02:00
Pavel Drozd aa1ad029bb Merge pull request #3252 from mhajas/KEYCLOAK-3604
KEYCLOAK-3604 Compile servlets and filters under JDK7
2016-09-29 11:06:21 +02:00
Bruno Oliveira e27cbac0b5 Ignore dependency-reduced-pom.xml created by Maven Shade plugin 2016-09-29 05:27:43 -03:00
Stian Thorgersen 5d34b7e682 Merge pull request #3189 from thomasdarimont/issue/KEYCLOAK-3491-revise-scripting-support
KEYCLOAK-3491 Revise Scripting Support
2016-09-29 10:12:15 +02:00
mhajas 69f66edb5f KEYCLOAK-3604 Compile servlets and filters under JDK7 2016-09-29 09:51:12 +02:00
Stian Thorgersen eed71a4b84 Merge pull request #3269 from abstractj/test-provider-factories
Inclusion of test to check the federation provider list when SSSD is enabled
2016-09-29 08:15:29 +02:00
Bill Burke 8967ca4066 refactor mongo entities, optimize imports 2016-09-28 15:25:39 -04:00
Bruno Oliveira a5b5e78eba Inclusion of test to check the federation provider list when SSSD is enabled 2016-09-28 14:16:41 -03:00
Stian Thorgersen a58c985934 Merge pull request #3268 from stianst/REVIEW
KEYCLOAK-2438
2016-09-28 13:27:26 +02:00
Stian Thorgersen 34f62eb31d Fixes to [KEYCLOAK-2438] PR 2016-09-28 10:25:37 +02:00
Bill Burke afee7d7403 Merge pull request #3267 from patriot1burke/master
mongo fixes
2016-09-27 21:17:24 -04:00
Bill Burke d0eb26b8bb Merge remote-tracking branch 'upstream/master' 2016-09-27 17:08:24 -04:00
Bill Burke d65cc830eb mongo fixes 2016-09-27 17:07:16 -04:00
mhajas 6c3479665c KEYCLOAK-3586 2016-09-27 14:00:52 +02:00
Vaclav Muzikar ee2daeb364 KEYCLOAK-3616 Add integration tests for Node.js adapter 2016-09-27 10:32:35 +02:00
Pavel Drozd fc6d6ff7f7 Merge pull request #3261 from vramik/KEYCLOAK-3609
KEYCLOAK-3609 Export/Import migration testing
2016-09-27 07:39:00 +02:00
Bruno Oliveira 98d2fe15e8 [KEYCLOAK-2438] - Add display name to social login buttons
[KEYCLOAK-3291] - Names of social identity providers are wrongly capitalized (eg GitHub vs Github)
2016-09-26 13:36:28 -03:00
Bill Burke af49d184a2 Merge pull request #3263 from patriot1burke/master
bump pom version
2016-09-26 11:01:45 -04:00
Bill Burke ecc104719d bump pom version 2016-09-26 11:01:18 -04:00
Stian Thorgersen e8fe9bce11 Merge pull request #3260 from stianst/KEYCLOAK-2756
KEYCLOAK-2756
2016-09-26 13:22:12 +02:00
Stian Thorgersen 3b455d1735 Merge pull request #3259 from stianst/KEYCLOAK-3612
KEYCLOAK-3612
2016-09-26 13:20:57 +02:00
Vlasta Ramik 103fa975a1 Resolve warnings while building the effective model 2016-09-26 12:34:46 +02:00
Pavel Drozd 9ee58909ab Merge pull request #3248 from pdrozd/patches
KEYCLOAK-3597 - Arquillian testuite - server preparation (overlay & p…
2016-09-26 10:26:13 +02:00
Pavel Drozd 6f5dadedd5 Merge pull request #3247 from vramik/KEYCLOAK-3596
KEYCLOAK-3596 Remove duplicate declaration of maven-resources-plugin
2016-09-26 10:25:07 +02:00
Stian Thorgersen 033d1f564a KEYCLOAK-2756
Renaming a realm breaks down the Clients
2016-09-26 10:11:28 +02:00
Stian Thorgersen bb7080584d KEYCLOAK-3612
Mark keycloak-authz-policy-common and keycloak-authz-policy-drools modules as private
2016-09-26 09:07:54 +02:00
Bill Burke 370a6c1631 Merge pull request #3258 from patriot1burke/master
Credentials Refactoring
2016-09-24 10:22:05 -04:00
Bill Burke 27e86e36c4 Merge remote-tracking branch 'upstream/master' 2016-09-23 16:50:16 -04:00
Bill Burke ff1326fe35 authenticator example updated 2016-09-23 16:50:08 -04:00
Marek Posolda 5fc7149aac Merge pull request #3257 from mposolda/pairwise
KEYCLOAK-3422 Pairwise subjects : few fixes and bit of refactoring
2016-09-23 20:58:51 +02:00
Bill Burke a1bcd0651d fixes 2016-09-23 10:38:49 -04:00
Marek Posolda 22aaa4cb52 Merge pull request #3237 from brat000012001/kc-iss-3505
KEYCLOAK-3505: updated the oidc user attribute mapper used to map oid…
2016-09-23 15:38:20 +02:00
mposolda 04f05c0cd1 KEYCLOAK-3422 Pairwise subjects : few fixes and bit of refactoring 2016-09-23 15:29:13 +02:00
Bill Burke 8e65356891 creds 2016-09-22 19:57:39 -04:00
Vlasta Ramik f91c517a9c Export/Import migration testing 2016-09-22 15:16:20 +02:00
Bill Burke 7209a95dce credential refactoring 2016-09-22 08:34:45 -04:00
didiez 98bf095471 Keep setSingleAttribute from deleting all other attributes of the user being updated. 2016-09-22 10:42:24 +02:00
Diego Díez Ricondo 33963f8aa7 Merge pull request #1 from keycloak/master
Bringing fork up to date
2016-09-22 09:17:14 +02:00
Stian Thorgersen a9a759c4dc Merge pull request #3251 from stianst/master
KEYCLOAK-3586
2016-09-21 10:55:46 +02:00
Stian Thorgersen 06c48a2830 KEYCLOAK-3586
Token is not refreshed in updateToken
2016-09-21 09:13:05 +02:00
gautric affc62460c KEYCLOAK-3602 - NPE into SAML DeploymentBuilder build 2016-09-20 18:39:49 +02:00
gautric cd3cd4f506 KEYCLOAK-3602 - NPE into SAML DeploymentBuilder build 2016-09-20 18:36:54 +02:00
Thomas Darimont 8e113384aa KEYCLOAK-3491 Revise Scripting Support
Refactored the scripting infrastructure and added documentation.
Added tests and an authenticator template in JavaScript for a quickstart.
Increased height of ace code editor to 600px to avoid scrolling.
2016-09-20 14:33:39 +02:00
Pavel Drozd 59eec8d5b4 KEYCLOAK-3597 - Arquillian testuite - server preparation (overlay & patches installation) 2016-09-20 13:00:54 +02:00
Vlasta Ramik 0ab53c5d88 Remove duplicate declaration of maven-resources-plugin 2016-09-20 12:51:27 +02:00
Stian Thorgersen 4977527f60 Merge pull request #3239 from stianst/SERVER-PROFILE
KEYCLOAK-3579 Add ability to define profiles
2016-09-20 10:39:05 +02:00
Stian Thorgersen 0addfeaa75 Merge pull request #3238 from mwcz/always-resolve-init-promise
always resolve keycloak.init's promise
2016-09-20 09:29:04 +02:00
Stian Thorgersen c6a6848483 Merge pull request #3245 from mhajas/KEYCLOAK-3590
KEYCLOAK-3590 Fix includes
2016-09-20 08:52:37 +02:00
Stian Thorgersen 9d0c9046ad Merge pull request #3227 from mhajas/KEYCLOAK-3553
KEYCLOAK-3553 Move all functionality tests to servlets
2016-09-20 08:51:59 +02:00
Stian Thorgersen 992268a8e6 KEYCLOAK-3579 Add ability to define profiles 2016-09-20 08:41:23 +02:00
Stan Silvert 5514a0c968 Merge pull request #3235 from eppsilon/update-angular2-example
Update Angular 2 example to Angular 2 final
2016-09-19 21:08:04 -04:00
Pedro Igor df1995636a Merge pull request #3244 from mhajas/KEYCLOAK-3561
KEYCLOAK-3561 Hardcoded artifact version
2016-09-19 12:29:57 -03:00
mhajas ba0d71704d KEYCLOAK-3590 Fix includes 2016-09-19 15:19:41 +02:00
mhajas f69eb5503b KEYCLOAK-3561 Hardcoded artifact version 2016-09-19 14:26:47 +02:00
Stian Thorgersen 9bc80cc323 Merge pull request #3240 from abstractj/KEYCLOAK-3536
[KEYCLOAK-3536] - Add integration tests for SSSD federation provider
2016-09-19 13:07:27 +02:00
Stian Thorgersen 39fa49f765 Merge pull request #3242 from stianst/master
KEYCLOAK-3578 Remove source distribution
2016-09-19 12:57:28 +02:00
Stian Thorgersen 80cc9b0585 KEYCLOAK-3578 Remove source distribution 2016-09-19 10:32:40 +02:00
Brett Epps 9f4cf07489 Add Angular2 product app to be deployed with other demo apps 2016-09-18 14:10:58 -05:00
Brett Epps 47b742a16e Update Angular 2 example to Angular 2.0.0 final release 2016-09-18 14:04:36 -05:00
Bruno Oliveira c26471faa8 Tests cases for: user disabled, password and profile changes 2016-09-16 18:25:47 -03:00
Bruno Oliveira 4b1b3a0dda Add Maven Shade for JNA 2016-09-16 18:19:17 -03:00
wyvie 6bdc9dc133 [KEYCLOAK-3036] Added sssd integration test 2016-09-16 18:19:17 -03:00
mhajas 12919223cf KEYCLOAK-3553 All functionality tests to servlets 2016-09-16 09:59:05 +02:00
Stian Thorgersen b32b222b02 Merge pull request #3224 from mhajas/KEYCLOAK-3551
KEYCLOAK-3551 Remove example-dist dependency from testsuite
2016-09-16 09:46:42 +02:00
Stian Thorgersen 44c47431a1 Merge pull request #3233 from betovieirasilva/master-KEYCLOAK-LoginUsername
[PULL-REQUEST-3181 & PULL-REQUEST-3233] Username is not displayed on the login screen with that email
2016-09-16 09:23:26 +02:00
Stian Thorgersen b2fd429749 Merge pull request #3234 from vramik/KEYCLOAK-3549
KEYCLOAK-3549 fix xsl locator to work with ibmjdk
2016-09-16 09:22:23 +02:00
mwcz bd2f220736 always resolve keycloak.init's promise 2016-09-15 17:25:29 -04:00
Peter Nalyvayko 0348e427de KEYCLOAK-3505: cosmetic coding style changes 2016-09-15 15:42:09 -04:00
Peter Nalyvayko b97908fb02 KEYCLOAK-3505: updated the oidc user attribute mapper used to map oidc broker claims to map the claims from userinfo claim set 2016-09-15 11:11:58 -04:00
Stian Thorgersen 1aeec2a83c Merge pull request #3236 from gicappa/patch-1
The documentation link was referring the old documentation
2016-09-15 09:52:01 +02:00
Gian Carlo Pace 05792516f6 The documentation link was referring the old documentation 2016-09-15 09:47:49 +02:00
Marek Posolda 5afe93552a Merge pull request #3231 from TeliaSoneraNorge/pr/KEYCLOAK-3422
KEYCLOAK-3422 support pairwise subject identifier in oidc
2016-09-14 21:51:48 +02:00
Marek Posolda 036b24378f Merge pull request #3225 from vmuzikar/KEYCLOAK-3552
KEYCLOAK-3552 Add some missing tests for OIDC Dynamic Profile
2016-09-14 18:30:44 +02:00
Vlasta Ramik bde45eaa07 fix xsl locator to work with ibmjdk 2016-09-14 14:43:14 +02:00
Pedro Igor f9b1cd191d Merge pull request #3232 from pedroigor/master
[KEYCLOAK-3534] - Fixing the logic to display the authz tab.
2016-09-13 19:25:08 -03:00
Gilberto Vieira da Silva 8c518a8d38 Include test case for PULL-REQ-3181 2016-09-13 18:57:07 -03:00
Gilberto Vieira da Silva 6d5dc673d4 When keycloak is set to login email and Username is different from email, to check the "Remember Me" username is not displayed on the login screen with that email because the KEYCLOAK_REMEMBER_ME cookie is always recorded the username field.
Conflicts:
	services/src/main/java/org/keycloak/services/managers/AuthenticationManager.java

[PULL-REQUEST-3181]
2016-09-13 18:56:25 -03:00
Gilberto Vieira da Silva 55e07bcde2 Reverted to appli to branch master-KEYCLOAK-LoginUsername 2016-09-13 18:52:16 -03:00
Gilberto Vieira da Silva 868f8b166f Reverted to appli to branch master-KEYCLOAK-LoginUsername 2016-09-13 18:52:05 -03:00
Gilberto Vieira da Silva 4b3d3bf55b Include test case for PULL-REQ-3181 2016-09-13 18:21:48 -03:00
Gilberto Vieira da Silva cb1b34eee5 When keycloak is set to login email and Username is different from email, to check the "Remember Me" username is not displayed on the login screen with that email because the KEYCLOAK_REMEMBER_ME cookie is always recorded the username field.
Conflicts:
	services/src/main/java/org/keycloak/services/managers/AuthenticationManager.java
2016-09-13 18:21:04 -03:00
Pedro Igor eb80d59cd8 [KEYCLOAK-3534] - Fixing the logic to display the authz tab. 2016-09-13 16:16:01 -03:00
Martin Hardselius 04d03452bd KEYCLOAK-3422 support pairwise subject identifier in oidc 2016-09-13 09:18:45 +02:00
Marek Posolda a88e975a3a Merge pull request #3228 from mposolda/master
KEYCLOAK-905 Realm keys rotation support on adapters
2016-09-13 04:43:17 +02:00
mposolda bf6246f5c1 KEYCLOAK-905 Realm keys rotation support on adapters 2016-09-12 21:24:04 +02:00
Pedro Igor d31d2859ae Merge pull request #3226 from pedroigor/master
[KEYCLOAK-3446] - Some minor changes
2016-09-12 09:01:31 -03:00
Pedro Igor 44f57b8273 [KEYCLOAK-3446] - Some minor changes 2016-09-09 17:48:32 -03:00
filipelautert 5eb36f4e0f [KEYCLOAK-3446] Add pt_BR localization for admin screens (#3173)
* Add client.name as a second parameter to the title expressions in login template

* Fixing tooltip.

* pt_BR localization for admin screens.

* Reverting login.ftl

* Added all tooltip messages - even the ones not translated.
Translated around 150 messages todas.

* More translations.

* Fixing wrong edit.
2016-09-09 16:34:59 -03:00
Stian Thorgersen 05ae84d533 Added version for keycloak-fuse-adapter-dist 2016-09-09 17:08:38 +02:00
Stian Thorgersen 59674e44bf Update HackingOnKeycloak.md 2016-09-09 15:11:35 +02:00
Marek Posolda efaa88b4e3 Merge pull request #3222 from mposolda/master
KEYCLOAK-3547 Incorrect jpa-changelog-2.2.0.xml
2016-09-09 13:20:04 +02:00
Marek Posolda f55a526ebb Merge pull request #3223 from stianst/master
KEYCLOAK-3535 Tweak logging for SSSD
2016-09-09 13:19:51 +02:00
Vaclav Muzikar fa02277e6e KEYCLOAK-3552 Add some missing tests for OIDC Dynamic Profile 2016-09-09 12:23:08 +02:00
mhajas 4780a3453a Remove example-dist dependency 2016-09-09 12:04:24 +02:00
Stian Thorgersen ccb9433e5c KEYCLOAK-3535 Tweak logging for SSSD 2016-09-09 11:32:06 +02:00
mposolda 9d79a847c8 KEYCLOAK-3547 Incorrect jpa-changelog-2.2.0.xml 2016-09-09 09:47:32 +02:00
Stian Thorgersen 1630b9a20c Merge pull request #3220 from abstractj/KEYCLOAK-3535
KEYCLOAK-3535 - Check if SSSD is available via DBUS
2016-09-09 08:15:11 +02:00
Stian Thorgersen 65befb16fd Merge pull request #3219 from pedroigor/KEYCLOAK-3534
[KEYCLOAK-3534] - Authorization tab appears too soon in admin console
2016-09-09 08:14:03 +02:00
Stian Thorgersen e8f99a2109 Merge pull request #3221 from patriot1burke/master
KEYCLOAK-3423
2016-09-09 07:45:53 +02:00
Pedro Igor 7af16fc747 [KEYCLOAK-3534] - Authorization tab appears too soon in admin console 2016-09-09 01:03:09 -03:00
Bill Burke 84f5c0926b KEYCLOAK-3423 2016-09-08 16:47:06 -04:00
Bruno Oliveira 11245701d2 Check if SSSD is available via DBUS 2016-09-08 16:01:45 -03:00
Bill Burke 5c45c5e6e4 Merge pull request #3218 from patriot1burke/master
jta=false for demo-dist
2016-09-08 09:42:49 -04:00
Bill Burke 04ee5ca7c1 jta=false for demo-dist 2016-09-08 09:42:05 -04:00
Stian Thorgersen df5d37a8d9 Merge pull request #3215 from stianst/KEYCLOAK-3538
KEYCLOAK-3538 Update examples to refer to standalone.xml for config
2016-09-08 15:27:57 +02:00
Stian Thorgersen 55a86dc0f4 Merge pull request #3217 from vramik/KEYCLOAK-3545
KEYCLOAK-3545 remove jta=false from default datasource definition
2016-09-08 15:26:49 +02:00
Vlasta Ramik fa8f60a5f0 remove jta=false from default datasource definition 2016-09-08 15:25:17 +02:00
Bill Burke 2a5c778af5 Merge pull request #3209 from patriot1burke/master
KEYCLOAK-3440
2016-09-08 09:10:54 -04:00
Stian Thorgersen f24d73e8d6 KEYCLOAK-3538 Update examples to refer to standalone.xml for config 2016-09-08 14:04:12 +02:00
Stian Thorgersen 6d40e0dd07 Merge pull request #3212 from didiez/master
KEYCLOAK-3513 Prevent clearing all registered sessions when invalidating some by sessionId
2016-09-08 13:50:14 +02:00
Marek Posolda 529ef3a425 Merge pull request #3213 from mposolda/master
KEYCLOAK-3542 Not possible to enable bruteForceProtection for realm
2016-09-08 13:41:18 +02:00
Stian Thorgersen 36bb94afb8 Environment dependent provider 2016-09-08 07:40:19 -03:00
mposolda 4fd0238ca9 KEYCLOAK-3542 Not possible to enable bruteForceProtection for realm 2016-09-08 12:30:38 +02:00
Marek Posolda 76e1160b36 Merge pull request #3210 from mposolda/master
KEYCLOAK-3537 Username not shown when validation error on Account pro…
2016-09-08 10:04:38 +02:00
didiez df3079852e Prevent clearing all registered sessions when invalidating some by sessionId 2016-09-08 09:19:30 +02:00
Stian Thorgersen 71b648a9b6 Merge pull request #3183 from mohitsuman/KEYCLOAK-3502
Keycloak 3502 - Implement "Empty State" for Identity Providers in Admin Console
2016-09-08 08:53:06 +02:00
Stian Thorgersen ab7bb21991 Merge pull request #3160 from ramunask/feature-lithuanian-locale
KEYCLOAK-3452 add Lithuanian localization
2016-09-08 08:44:45 +02:00
Stian Thorgersen 348e0b6226 Merge pull request #3200 from mbaluch/master
RHSSO-423 - Added default value for 'log-dir'. Set to ${project.build…
2016-09-08 08:42:54 +02:00
Stian Thorgersen 44b7210af7 Merge pull request #3203 from mhajas/eap6fix
KEYCLOAK-3533 Fix forbidden page on eap6
2016-09-08 08:41:52 +02:00
Stian Thorgersen f726caea9b Merge pull request #3205 from stianst/KEYCLOAK-3342
KEYCLOAK-3342 Add Identity Provider authenticator
2016-09-08 08:40:32 +02:00
mposolda 16282aeb7b KEYCLOAK-3537 Username not shown when validation error on Account profile page 2016-09-08 08:36:39 +02:00
Stian Thorgersen d2c546bdc2 Merge pull request #3201 from pedroigor/KEYCLOAK-3129
[KEYCLOAK-3129] - Add authorization services endpoints to PermissionsTest
2016-09-08 08:03:40 +02:00
Stian Thorgersen 1f27fc9e4b Merge pull request #3153 from cargosoft/KEYCLOAK-3327
KEYCLOAK-3327 Make realm attributes accessible via the RealmModel
2016-09-08 08:00:14 +02:00
Stian Thorgersen 7c292b1213 KEYCLOAK-3342 Add Identity Provider authenticator 2016-09-08 07:20:35 +02:00
Bill Burke 3b9a6b32e1 Revert "Revert "KEYCLOAK-3440""
This reverts commit 01e48dc4b8.
2016-09-07 23:41:32 -04:00
Bill Burke b0bb0d36ab Merge remote-tracking branch 'upstream/master' 2016-09-07 23:19:45 -04:00
Bill Burke cdda19d1f8 pom.xml 2016-09-07 23:19:16 -04:00
Bill Burke 759747ab5c Merge pull request #3208 from keycloak/revert-3207-master
Revert "KEYCLOAK-3440"
2016-09-07 23:17:52 -04:00
Bill Burke 01e48dc4b8 Revert "KEYCLOAK-3440" 2016-09-07 23:17:35 -04:00
Bill Burke 61b93c318f Merge pull request #3207 from patriot1burke/master
KEYCLOAK-3440
2016-09-07 23:15:44 -04:00
Bill Burke 3f35234cf5 Merge remote-tracking branch 'upstream/master' 2016-09-07 23:11:38 -04:00
Bill Burke da135389c7 KEYCLOAK-3440 2016-09-07 23:11:28 -04:00
Marek Posolda b3d7d48ec8 Merge pull request #3206 from mposolda/master
KEYCLOAK-3494 Input elements backed by user attributes fail to update…
2016-09-07 22:02:38 +02:00
mposolda 5a015a6518 KEYCLOAK-3494 Input elements backed by user attributes fail to update in themes 2016-09-07 20:08:09 +02:00
Stian Thorgersen 7912bd4dae Merge pull request #3195 from abstractj/KEYCLOAK-3036
Initial FreeIPA Integration
2016-09-07 12:45:35 +02:00
mhajas c860d03a60 Fix forbidden page on eap6 2016-09-07 09:02:46 +02:00
Bruno Oliveira 1b2a5eda32 Initial FreeIPA Integration
- Provide username/password authentication with PAM
  - Obtain user data from SSSD
  - Feature packs for dbus-java, libpam4j and SSSD API
  - Provisioning script
2016-09-06 18:04:43 -03:00
Pedro Igor 517413d38e [KEYCLOAK-3129] - Add authorization services endpoints to PermissionsTest 2016-09-06 17:32:37 -03:00
Marek Baluch fd25dbcb5c RHSSO-423 - Added default value for 'log-dir'. Set to ${project.build.dir}/surefire-reports 2016-09-06 18:16:15 +02:00
Mohit Suman bdbc4e1f6d add margin and update the description text 2016-09-06 19:34:07 +05:30
Stian Thorgersen eebd496c2f Merge pull request #3199 from stianst/KEYCLOAK-3475
KEYCLOAK-3475 Fixes for on token expired event
2016-09-06 15:36:46 +02:00
Bill Burke 15d31a202f Merge remote-tracking branch 'upstream/master' 2016-09-06 08:56:17 -04:00
Bill Burke 6714c1a136 cred refactor 2016-09-06 08:55:47 -04:00
Ramūnas Kraujutis ca6d1f3c48 LT locale improvements 2016-09-06 14:58:09 +03:00
Ramūnas Kraujutis c5a149a892 Merge remote-tracking branch 'upstream/master' into feature-lithuanian-locale 2016-09-06 14:50:07 +03:00
Stian Thorgersen b33648cc29 Merge pull request #3191 from greg0ire/patch-1
Remove duplicate untranslated word
2016-09-06 13:42:32 +02:00
Stian Thorgersen 4a583712b8 Merge pull request #3182 from mohitsuman/KEYCLOAK-2706
Fixed dropdown menu in navigation bar in small screens
2016-09-06 13:16:38 +02:00
Stian Thorgersen 5d20651c66 KEYCLOAK-3475 Fixes for on token expired event 2016-09-06 13:00:37 +02:00
Stian Thorgersen a49a288bbe Merge pull request #3197 from stianst/KEYCLOAK-3475
KEYCLOAK-3475 Call event handlers when initialized with tokens
2016-09-06 11:32:03 +02:00
Marek Posolda fbace351b3 Merge pull request #3198 from mposolda/master
Fuse adapter ZIP download
2016-09-06 10:47:48 +02:00
mposolda fbb2dfcf59 Fuse adapter ZIP download 2016-09-06 10:46:36 +02:00
Ramūnas Kraujutis 05813832fc add newly added translations to Lithuanian locale files 2016-09-06 10:53:23 +03:00
Ramūnas Kraujutis e67f8c7a61 Merge branch 'master-upstream' into feature-lithuanian-locale
# Conflicts:
#	themes/src/main/resources/theme/base/account/messages/messages_en.properties
#	themes/src/main/resources/theme/base/account/theme.properties
#	themes/src/main/resources/theme/base/admin/theme.properties
#	themes/src/main/resources/theme/base/email/theme.properties
#	themes/src/main/resources/theme/base/login/theme.properties
2016-09-06 10:51:01 +03:00
Stian Thorgersen 7a66b055be KEYCLOAK-3475 Call event handlers when initialized with tokens 2016-09-06 09:00:29 +02:00
Marek Posolda e3ddc5a639 Merge pull request #3194 from mposolda/master
KEYCLOAK-3525 Validation callback when creating/updating protocolMapper
2016-09-06 08:24:26 +02:00
mposolda 8c5b1e4892 KEYCLOAK-3525 Validation callback when creating/updating protocolMapper 2016-09-06 07:15:27 +02:00
Marek Posolda ad1d3adb9e Merge pull request #3196 from mposolda/fuse-zip
KEYCLOAK-3526 Fuse adapter ZIP fix
2016-09-06 07:14:51 +02:00
mposolda e18f3edbcd KEYCLOAK-3526 Fuse adapter ZIP fix 2016-09-06 07:14:01 +02:00
Marek Posolda 6ede760725 Merge pull request #3083 from martin-kanis/master
Package Fuse adapter as overlay zip
2016-09-06 05:44:27 +02:00
Marek Posolda db0f05fb86 Merge pull request #3192 from mposolda/master
KEYCLOAK-2957 IdpEmailVerificationAuthenticator should setEmailVerifi…
2016-09-05 23:03:03 +02:00
mposolda 03c05bd72b KEYCLOAK-2957 IdpEmailVerificationAuthenticator should setEmailVerified to true after successfuly link user by email verification 2016-09-05 18:04:24 +02:00
Grégoire Paris c867fcf9e7 Remove duplicate untranslated word 2016-09-05 17:12:21 +02:00
Stian Thorgersen 22e85b11eb Merge pull request #3190 from vramik/KEYCLOAK-3489
KEYCLOAK-3489 Database migration testing
2016-09-05 15:19:24 +02:00
Vlasta Ramik 39fe439573 Database migration testing 2016-09-05 13:39:21 +02:00
Stian Thorgersen fc6b7ea8ee Enabled Norwegian translation 2016-09-05 09:45:44 +02:00
Stian Thorgersen 0e1edb3d7a Merge pull request #3170 from TeliaSoneraNorge/issue/KEYCLOAK-3487-add-norwegian-localization
Add Norwegian localization
2016-09-05 09:42:44 +02:00
Stian Thorgersen 7a77055e58 Merge pull request #3180 from mbaluch/master
A class to generate a single jUnit XML file. This file will be co…
2016-09-05 09:37:33 +02:00
Stian Thorgersen d9e95455a2 Merge pull request #3172 from mwcz/js-updateToken-withCredentials
send cookies along with keycloak.updateToken()
2016-09-05 09:37:00 +02:00
Stian Thorgersen f5b4efc080 Merge pull request #3131 from abstractj/removal-changeset
Removal of never used classes from the changeset package
2016-09-05 09:35:08 +02:00
Stian Thorgersen b1a233e41f Merge branch 'feature-fix-time-selector' of https://github.com/ramunask/keycloak into ramunask-feature-fix-time-selector 2016-09-05 09:32:11 +02:00
Stian Thorgersen 4d6e656b02 Merge pull request #3150 from stoffus/bug-fix-in-reset-password-tpl
KEYCLOAK-3441 Respect registrationEmailAsUsername in reset-password template
2016-09-05 09:10:49 +02:00
Stian Thorgersen 3354e7c98e Merge pull request #3148 from wadahiro/KEYCLOAK-3435
KEYCLOAK-3435 Fix some minor issues in the Admin Console UI
2016-09-05 09:09:30 +02:00
Ramunas Kraujutis 05fe17be4f merge latest English messages 2016-09-04 22:20:30 +03:00
Ramunas Kraujutis 2e9f14dfd8 Merge branch 'master-upstream' into feature-lithuanian-locale
# Conflicts:
#	themes/src/main/resources/theme/base/account/messages/messages_en.properties
#	themes/src/main/resources/theme/base/account/theme.properties
#	themes/src/main/resources/theme/base/admin/theme.properties
#	themes/src/main/resources/theme/base/email/theme.properties
#	themes/src/main/resources/theme/base/login/theme.properties
2016-09-04 22:20:03 +03:00
Marek Posolda 404aa69adb Merge pull request #3187 from mposolda/master
KEYCLOAK-3349 Support for 'request' and 'request_uri' parameters
2016-09-02 21:58:25 +02:00
mposolda a24a43c4be KEYCLOAK-3349 Support for 'request' and 'request_uri' parameters 2016-09-02 20:20:38 +02:00
mposolda 892d5fd1b7 TestingExportImport in separate resource 2016-09-02 20:20:38 +02:00
Stian Thorgersen 258f7c8d60 Merge pull request #3176 from stianst/KEYCLOAK-3501
KEYCLOAK-3501 Fix NPE in migration of OTP action
2016-09-02 10:11:33 +02:00
Mohit Suman b17bd9e660 Fixed dropdown menu in navigation bar in small screens 2016-09-02 01:37:10 +05:30
Pedro Igor 43d23835d0 Merge pull request #3179 from pedroigor/KEYCLOAK-3472
[KEYCLOAK-3472] - Multiple paths with the same name and tests
2016-09-01 10:00:33 -03:00
Mohit Suman d11efa363c Dropdown alignment with the empty state 2016-09-01 16:02:34 +05:30
Mohit Suman 8f0afb2551 Add empty state for Identitiy Provider in admin console 2016-09-01 15:36:17 +05:30
Marek Baluch c874f96228 A class which generates a single junit xml file. This file will be consumed by Polarion 2016-09-01 10:18:06 +02:00
Pedro Igor ce78cc1d1c [KEYCLOAK-3472] - Multiple paths with the same name and tests 2016-08-31 21:04:36 -03:00
Marek Posolda 599c69a2a3 Merge pull request #3177 from vmuzikar/KEYCLOAK-3421
KEYCLOAK-3421 Validation for URI fragments in redirect_uri
2016-08-31 19:39:28 +02:00
Pedro Igor 9daced953e Merge pull request #3157 from ramunask/feature-fix-en-translation
KEYCLOAK-3463 fixed translation for authz-policy-decision-strategy.tooltip
2016-08-31 09:18:31 -03:00
Vaclav Muzikar 1b085d3e13 KEYCLOAK-3421 Validation for URI fragments in redirect_uri 2016-08-31 13:07:33 +02:00
Stian Thorgersen 1bea93b1e1 KEYCLOAK-3501 Fix NPE in migration of OTP action 2016-08-31 12:05:49 +02:00
Pedro Igor 16bd2fb8f8 Merge pull request #3175 from pedroigor/KEYCLOAK-3337
[KEYCLOAK-3337] - Support more specific date/time periods with the Time policy provider
2016-08-30 18:16:09 -03:00
Marek Posolda e8efe10fc8 Merge pull request #3174 from mposolda/master
KEYCLOAK-3416 Add support for signed Userinfo requests
2016-08-30 22:18:09 +02:00
Pedro Igor 73bcfba5f3 [KEYCLOAK-3337] - Support more specific date/time periods with the Time policy provider 2016-08-30 16:32:00 -03:00
mposolda 02f28a7e8e KEYCLOAK-3416 Add support for signed Userinfo requests 2016-08-30 20:21:04 +02:00
Stian Thorgersen 5a4bb5f3f0 Merge pull request #3168 from stianst/master
KEYCLOAK-3462 Fix exception not displayed in init from KeycloakServer
2016-08-30 09:47:31 +02:00
Marek Posolda 235623301e Merge pull request #3171 from mposolda/master
KEYCLOAK-3424
2016-08-29 16:24:54 +02:00
mposolda f4aee129e4 KEYCLOAK-3424 Issuer or token-endpoint as audience in signed JWT 2016-08-29 14:43:35 +02:00
mposolda a7f9a6e095 KEYCLOAK-3424 Support for import from public key 2016-08-29 14:43:29 +02:00
Caroline Olsen 539d9863aa Add Norwegian localization
KEYCLOAK-3487
2016-08-29 11:01:50 +02:00
Stian Thorgersen 4f51b7b34c KEYCLOAK-3462 Fix exception not displayed in init from KeycloakServer 2016-08-29 09:21:22 +02:00
Stian Thorgersen 0e5af3710e Merge pull request #3166 from ssilvert/dmr-config-dev-doc
KEYCLOAK-3196: Update dev doc for keycloak subsystem configuration.
2016-08-29 08:12:28 +02:00
Stan Silvert a462dd78bb Update dev doc for keycloak subsystem configuration. 2016-08-26 16:40:34 -04:00
mwcz ec5289b5c8 send cookies along with keycloak.updateToken() 2016-08-26 11:23:44 -04:00
Stian Thorgersen 2a29f2a9c6 Merge pull request #3151 from ssilvert/dmr-server-config
KEYCLOAK-3196: Use WildFly management model for server configuration.
2016-08-26 13:44:45 +02:00
Stian Thorgersen 9ffd6548ce Merge pull request #3146 from mhajas/KEYCLOAK-3161
KEYCLOAK-3161 Migrate SAML adapter tests
2016-08-26 13:40:58 +02:00
Stian Thorgersen cfd41fbc8b Merge pull request #3165 from StephenOTT/patch-1
typo fixes in Readme files
2016-08-26 13:40:12 +02:00
Stian Thorgersen 4c2cca4672 Merge pull request #3118 from wadahiro/issue/KEYCLOAK-3397-add-japanese-localization
KEYCLOAK-3397 Add Japanese localization
2016-08-26 11:38:03 +02:00
Hiroyuki Wada 53557d9cfd KEYCLOAK-3397 Fix Japanese translation 2016-08-26 10:46:45 +09:00
Stan Silvert a0054bd77f Merge pull request #1 from vramik/KEYCLOAK-3459
KEYCLOAK-3459 Adapt testsuite according to server configuration insid…
2016-08-25 07:21:34 -04:00
Vlasta Ramik 099de9e6e3 KEYCLOAK-3459 Adapt testsuite according to server configuration inside standalone.xml instead of keycloak-server.json 2016-08-25 12:36:39 +02:00
Stephen Russett cfd61dc359 typo fix in google example readme 2016-08-24 23:45:52 -04:00
Stephen Russett 99f453b25c typo fix 2016-08-24 23:40:21 -04:00
Marek Posolda d138b19adb Merge pull request #3142 from vmuzikar/KEYCLOAK-3429
KEYCLOAK-3429 Fix behaviour of redirect_uri parameter with query components
2016-08-24 09:53:29 +02:00
Stan Silvert 345163994a KEYCLOAK-3196: Allow expressions in SPI properties. 2016-08-23 13:02:11 -04:00
Stan Silvert 09090cec24 KEYCLOAK-3196: Resolve conflicts. Port keycloak-server.json changes to xml
and cli
2016-08-23 11:56:21 -04:00
Stan Silvert 3abcf713e5 KEYCLOAK-3196: Test need ability to load keycloak-server.json from
/META-INF
2016-08-23 11:27:06 -04:00
Stan Silvert e4d97485ec KEYCLOAK-3196: Create master cli script for server-subsystem. 2016-08-23 11:27:04 -04:00
Stan Silvert 1489bd734a KEYCLOAK-3196: Add CLI help text. 2016-08-23 11:27:01 -04:00
Stan Silvert ef442cae92 KEYCLOAK-3196: Create single place to declare default keycloak subsystem
config.
2016-08-23 11:26:58 -04:00
Stan Silvert 3493aa4ab7 KEYCLOAK-3196: Use WildFly management model for server configuration. 2016-08-23 11:26:56 -04:00
Marek Posolda 3be47dee37 Merge pull request #3162 from mposolda/master
KEYCLOAK-3460 Support for ClientUpdatedEvent
2016-08-23 16:35:14 +02:00
mposolda 494d9973a6 KEYCLOAK-3460 Support for ClientUpdatedEvent 2016-08-23 14:57:31 +02:00
Stian Thorgersen e28a3750cd Merge pull request #3149 from vmuzikar/KEYCLOAK-3437
KEYCLOAK-3437 Add User Federation Console UI test
2016-08-23 12:57:02 +02:00
Stian Thorgersen 014c8e068f Merge pull request #3156 from vmuzikar/KEYCLOAK-3448
KEYCLOAK-3448 Stabilize Internationalization UI Test
2016-08-23 12:55:53 +02:00
Stian Thorgersen 3890867383 Merge pull request #3133 from fkiss/master-email-ibmjdk
KEYCLOAK-3351 TrustStoreEmailTest fix for ibmjdk
2016-08-23 12:54:12 +02:00
Stian Thorgersen d499b8a489 Merge pull request #3159 from stianst/master
KEYCLOAK-3447 Manual upgrade of database schema
2016-08-23 12:38:28 +02:00
Ramunas Kraujutis 352602da39 change lt locale position to be ordered alphabetically 2016-08-22 19:12:03 +03:00
Ramunas Kraujutis c333d1eaa9 change lt locale position to be ordered alphabetically 2016-08-22 19:10:20 +03:00
Stian Thorgersen c522a20ab9 KEYCLOAK-3447 Manual upgrade of database schema 2016-08-22 10:22:08 +02:00
Ramunas Kraujutis ee66cb51da adding Lithuanian translation 2016-08-21 16:14:22 +03:00
Ramunas Kraujutis 93d65fa895 fix select options and add values to fix issues when non-English locale is used with translated values 2016-08-21 16:09:18 +03:00
Ramunas Kraujutis 6aafde7819 fixed translation for authz-policy-decision-strategy.tooltip changing "policy" to "permission" 2016-08-21 16:04:51 +03:00
Vaclav Muzikar 365a1b66c8 KEYCLOAK-3448 Stabilize Internationalization UI Test 2016-08-19 11:40:01 +02:00
Pedro Igor fa1fb3a3a9 Merge pull request #3152 from pedroigor/KEYCLOAK-3377
[KEYCLOAK-3377] - Add pagination to authorization UI
2016-08-18 19:43:34 -03:00
Dimitri Teleguin b109ce14b0 KEYCLOAK-3327 Make realm attributes accessible via the RealmModel 2016-08-18 23:28:32 +03:00
Bill Burke 561661d726 Merge remote-tracking branch 'upstream/master' 2016-08-18 13:13:28 -04:00
Bill Burke 6592014707 Update users.js 2016-08-18 13:13:08 -04:00
Pedro Igor 4cd0a8e894 [KEYCLOAK-3377] - Add pagination to authorization UI 2016-08-18 13:29:54 -03:00
Bill Burke 6c44e9befa Merge remote-tracking branch 'upstream/master' 2016-08-18 11:57:25 -04:00
Bill Burke 8e9cfc4a28 creds 2016-08-18 11:52:00 -04:00
Christopher Svensson d20d5ce2d7 Bug fix: Respect registrationEmailAsUsername in reset-password template. 2016-08-18 10:24:37 +02:00
Christopher Svensson 243c8cc2cd Merge remote-tracking branch 'keycloak/master' 2016-08-18 10:19:27 +02:00
Stian Thorgersen 7d444c8b13 Merge pull request #3147 from stianst/master
Tweak Travis
2016-08-17 08:08:13 +02:00
Vaclav Muzikar be83e2fb6b KEYCLOAK-3437 Add User Federation Console UI test 2016-08-16 15:47:02 +02:00
Hiroyuki Wada b34acd4cc2 KEYCLOAK-3397 Add Japanese localization 2016-08-16 20:44:47 +09:00
Hiroyuki Wada 85ac784fd0 KEYCLOAK-3435 Fix some minor issues in the Admin Console UI 2016-08-16 20:34:48 +09:00
Stian Thorgersen ab2368be34 Tweak Travis 2016-08-16 07:49:17 +02:00
Pedro Igor ba076ad159 Merge pull request #3144 from pedroigor/KEYCLOAK-3144
[KEYCLOAK-3144] - Add authorization settings when exporting/importing a realm
2016-08-15 11:49:49 -03:00
Pedro Igor a8d2b810cf [KEYCLOAK-3144] - Add authorization settings when exporting/importing a realm. 2016-08-15 10:35:28 -03:00
mhajas 285a99d903 Migrate SAML adapter tests 2016-08-13 11:09:48 +02:00
Pedro Igor fd983690e2 Merge pull request #3140 from pedroigor/KEYCLOAK-3390
[KEYCLOAK-3390] - Updating authorization objects doesn't invalidate cache in cluster
2016-08-12 12:45:20 -03:00
Marek Posolda 006a0f856e Merge pull request #3143 from mposolda/oidc-dynamic2
KEYCLOAK-3424 Support for save JWKS in OIDC ClientRegistration endpoint
2016-08-12 17:33:07 +02:00
Pedro Igor bfe10e34e7 [KEYCLOAK-3390] - Updating authorization objects doesn't invalidate cache in cluster 2016-08-12 11:15:13 -03:00
mposolda 2cba13db9c KEYCLOAK-3424 Possibility to import JWK key through admin console 2016-08-12 15:51:14 +02:00
mposolda 3eb9134e02 KEYCLOAK-3424 Support for save JWKS in OIDC ClientRegistration endpoint 2016-08-12 15:51:14 +02:00
Vaclav Muzikar b7f2e0b5ff KEYCLOAK-3429 Fix behaviour of redirect_uri parameter with query components 2016-08-12 14:02:17 +02:00
Pedro Igor 27187c11f1 Merge pull request #3138 from pedroigor/KEYCLOAK-3428
[KEYCLOAK-3428] - Removing scope policies in case the resource does not match
2016-08-11 14:59:20 -03:00
Pedro Igor 0030df060b [KEYCLOAK-3428] - Removing scope policies in case the resource does not match 2016-08-11 14:58:14 -03:00
Marek Posolda f6f587e472 Merge pull request #3137 from thomasdarimont/issue/KEYCLOAK-3412-remove-unused-adminEventBuilder-error-method
KEYCLOAK-3412 - Remove erroneous AdminEventBuilder.error method
2016-08-11 17:41:04 +02:00
Marek Posolda 841c6b619a Merge pull request #3136 from mposolda/oidc-dynamic2
OIDC dynamic client registrations from conformance testsuite
2016-08-11 17:16:11 +02:00
Thomas Darimont e0d70a35d6 KEYCLOAK-3412 - Remove erroneous AdminEventBuilder.error method
Wasn't used within the Keycloak codebase and wouldn't have worked either
since the OperationType lookup would always fail since there are no
"_ERROR" operation types.

Signed-off-by: Thomas Darimont <thomas.darimont@gmail.com>
2016-08-11 16:10:49 +02:00
mposolda 0520d465c1 KEYCLOAK-3414 Support for client registration from trusted hosts 2016-08-11 15:55:32 +02:00
mposolda a8fb988e31 KEYCLOAK-3406 OIDC dynamic client registrations specs fixes 2016-08-11 15:54:51 +02:00
Marek Posolda c34d175572 Merge pull request #3135 from mposolda/master
Fix ExportImportTest
2016-08-11 15:53:16 +02:00
mposolda 9c7442c75b Fix ExportImportTest 2016-08-11 15:51:56 +02:00
fkiss de888fc8a1 KEYCLOAK-3351 TrustStoreEmailTest fix for ibmjdk 2016-08-11 10:52:29 +02:00
Bruno Oliveira 4d8e19eb7c Removal of never used classes from the changeset package 2016-08-10 17:28:38 -03:00
Marek Posolda 2df7d6252e Merge pull request #3128 from mposolda/master
Set version to 2.2.0-SNAPSHOT
2016-08-10 09:02:13 +02:00
mposolda d52e043322 Set version to 2.2.0-SNAPSHOT 2016-08-10 08:57:18 +02:00
Marek Posolda 6c8d55d534 Merge pull request #3125 from thomasdarimont/issue/KEYCLOAK-3391-hide-service-account-roles-if-service-accounts-disabled
KEYCLOAK-3391 Better control over service account roles tab visibility
2016-08-10 08:16:27 +02:00
Marek Posolda 26bc07b2c4 Merge pull request #3126 from pedroigor/KEYCLOAK-3398
[KEYCLOAK-3398] - Review input fields on AuthZ UI to fetch data on demand
2016-08-10 06:50:51 +02:00
Bill Burke 7f6fc170dc Merge pull request #3119 from fkiss/master-exportimport
KEYCLOAK-3211 - ExportImportTest fix for Wildfly
2016-08-09 20:59:04 -04:00
Bill Burke 741bbf471f Merge pull request #3123 from patriot1burke/master
components import/export
2016-08-09 20:58:20 -04:00
Pedro Igor 70eb27ec83 [KEYCLOAK-3398] - Review input fields on AuthZ UI to fetch data on demand 2016-08-09 21:56:29 -03:00
Thomas Darimont 96b729886f KEYCLOAK-3391 Better control of service account roles tab visibility
Previously the service account roles remain visible when changing
the client type from confidential to public or bearer only.

We now only show the service account roles tab iif:
- service accounts are enabled
- client access type is set to confidential
2016-08-10 00:44:14 +02:00
Bill Burke 530870f05e realm components import/export 2016-08-09 15:06:29 -04:00
Bill Burke 1633f062d5 Merge remote-tracking branch 'upstream/master' 2016-08-09 12:25:13 -04:00
Bill Burke ff703f935f component export/import 2016-08-09 12:25:04 -04:00
fkiss 4974079794 KEYCLOAK-3211 - ExportImportTest fix for Wildfly 2016-08-09 15:20:40 +02:00
Bill Burke d94515cdae Merge pull request #3117 from patriot1burke/master
deployer, jta lookup, merge user fed/storage
2016-08-08 17:46:35 -04:00
Bill Burke f838c697d1 Merge remote-tracking branch 'upstream/master' 2016-08-08 16:04:16 -04:00
Bill Burke d14de43ac7 merge User Federation/Storage menu 2016-08-08 16:02:06 -04:00
Marek Posolda e198e7e0b9 Merge pull request #3116 from mposolda/master
KEYCLOAK-3400 OIDC request with missing response_type should respond …
2016-08-08 21:50:08 +02:00
Bill Burke 83306963e8 jta transaction abstraction 2016-08-08 12:32:36 -04:00
mposolda 65e2f127c9 KEYCLOAK-3400 OIDC request with missing response_type should respond with error 2016-08-08 16:11:50 +02:00
Marek Posolda 64c2077c0b Merge pull request #3115 from mposolda/master
KEYCLOAK-2169 KEYCLOAK-3286 Support for at_hash and c_hash
2016-08-08 12:36:33 +02:00
mposolda 9be6777685 KEYCLOAK-2169 KEYCLOAK-3286 Support for at_hash and c_hash 2016-08-08 10:57:44 +02:00
Bill Burke f14f303dfe Merge remote-tracking branch 'upstream/master' 2016-08-07 11:50:44 -04:00
Bill Burke 33d7d89ad9 provider hot deployment 2016-08-07 11:41:52 -04:00
Marek Posolda 65c49c39f4 Merge pull request #3114 from mposolda/master
KEYCLOAK-3321 OIDC requests without 'nonce' claim should be rejected …
2016-08-05 16:45:56 +02:00
Marek Posolda 6c0f685c39 Merge pull request #2948 from thomasdarimont/issue/KEYCLOAK-3142-Add-ResourceType-to-AdminEvents
KEYCLOAK-3142 - Capture ResourceType that triggers an AdminEvent
2016-08-05 15:07:56 +02:00
mposolda e0a59baaf2 KEYCLOAK-3321 OIDC requests without 'nonce' claim should be rejected unless using the code flow. Started responseType tests 2016-08-05 15:05:26 +02:00
Marek Posolda 6a797a61a9 Merge pull request #3113 from vmuzikar/KEYCLOAK-3367
KEYCLOAK-3367 Improve stability of Adapters Tests
2016-08-05 09:44:52 +02:00
Thomas Darimont e49afb2d83 KEYCLOAK-3142 - Revised according to codereview
Liquibase Moved schema evolution configuration from jpa-changelog-2.1.0
to jpa-changelog-2.2.0.
Corrected wrong ResourceType references in tests.
Adapted AdminEvents copy-routines to be aware of resourceType attribute.
Added ResourceType enum to exposed ENUMS of ServerInfoAdminResource.

Signed-off-by: Thomas Darimont <thomas.darimont@gmail.com>
2016-08-05 00:01:03 +02:00
Vaclav Muzikar 0d225f44de KEYCLOAK-3367 Improve stability of Adapters Tests 2016-08-04 14:43:49 +02:00
Thomas Darimont 586f6eeece KEYCLOAK-3142 - Capture ResourceType that triggers an AdminEvent
Introduced new ResourceType enum for AdminEvents which lists
the current supported ResourceTypes for which AdminEvents
can be fired.

Previously it was difficult for custom EventListeners to figure
out which ResourceType triggered an AdminEvent in order
to handle it appropriately, effectively forcing users to parse
the representation.
Having dedicated resource types as a marker on an AdminEvent helps
to ease custom EventListener code.

We now also allow filtering of admin events by ResourceType in the
admin-console.

Signed-off-by: Thomas Darimont <thomas.darimont@gmail.com>
2016-08-04 11:30:02 +02:00
Bill Burke f91907c8f9 Merge pull request #3107 from thomasdarimont/issue/KEYCLOAK-3392-honor-web-context-for-odic-endpoint-link
KEYCLOAK-3392 Use authUrl prefix for OIDC Configuration link
2016-08-03 21:34:00 -04:00
Bill Burke 9e0667bc11 Merge pull request #3080 from trajakovic/issue/editAccountHtmlTtile
Fixing typo in account resource(s) bundle
2016-08-03 21:31:44 -04:00
Bill Burke a3ffb32532 Merge pull request #3060 from fkiss/master-ldaps
KEYCLOAK-2281 added ldap tests over ssl
2016-08-03 21:31:12 -04:00
Bill Burke 1e7cf9fb3f Merge pull request #3088 from thomasdarimont/issue/KEYCLOAK-3380-allow-ignore-pattern-in-filter
KEYCLOAK-3380 Allow to configure paths to skip in KeycloakOIDCFilter
2016-08-03 21:30:20 -04:00
Bill Burke f75c0d3e61 Merge pull request #3111 from patriot1burke/master
user storage provider jpa example
2016-08-03 21:27:30 -04:00
Bill Burke 534ee2e50c Merge remote-tracking branch 'upstream/master' 2016-08-03 19:16:45 -04:00
Bill Burke 70722d0d3d user storage provider jpa example 2016-08-03 19:16:11 -04:00
Marek Posolda 0292acd5e2 Merge pull request #3110 from mposolda/master
Master: Oracle & EAP7 overlay
2016-08-03 14:24:50 +02:00
mposolda bf3541414c KEYCLOAK-3393 Fix Keycloak on EAP7 overlay 2016-08-03 13:01:44 +02:00
mposolda 9242e972c0 Fix Oracle DB 2016-08-03 13:01:30 +02:00
Thomas Darimont 57a96fa6aa KEYCLOAK-3392 Use authUrl prefix for OIDC Configuration link
We now use the {{authUrl}} prefix for the OIDC configuration link
in the admin-console to honor different web-context paths.

Previously when a different web-context than /auth was configured
the generated link pointed to the wrong location.

Signed-off-by: Thomas Darimont <thomas.darimont@gmail.com>
2016-08-02 15:52:22 +02:00
Bill Burke 7f08717dfb Merge pull request #3105 from patriot1burke/master
component model
2016-08-02 09:28:55 -04:00
Bill Burke 9365a40426 Merge pull request #3104 from zschwarz/exclude-test
KEYCLOAK-3389 Added general exclude for tests
2016-08-02 07:19:42 -04:00
Bill Burke ae58d64741 Merge pull request #3092 from vmuzikar/KEYCLOAK-3381
KEYCLOAK-3381 Fix and stabilize some Console UI tests
2016-08-02 07:19:28 -04:00
Bill Burke 4a8b4bcdec Merge pull request #3087 from zschwarz/password-policy
KEYCLOAK-3379 Password policy tests refactoring
2016-08-02 07:15:58 -04:00
Bill Burke e3aec098a2 Merge pull request #3064 from cainj13/oneSamlAttributeStatement
SamlProtocol should only drop attributes into a single attributeStatement
2016-08-02 07:14:08 -04:00
Bill Burke 3b9b673e5e turn off menu item 2016-08-02 06:57:48 -04:00
Bill Burke 17e75950fe more fixes 2016-08-02 06:56:22 -04:00
Bill Burke 1c75b03e59 props 2016-08-02 06:50:13 -04:00
Marek Posolda 27814dab65 Merge pull request #3102 from mposolda/master
Fixing mongo
2016-08-02 12:25:41 +02:00
mposolda b3a55df1e7 Fixing mongo 2016-08-02 10:58:44 +02:00
Marek Posolda 7ec3813a07 Merge pull request #3103 from mposolda/travis-fix
Travis workaround - another attempt
2016-08-02 09:21:04 +02:00
mposolda 62b96143a1 Travis workaround - another attempt 2016-08-02 09:20:33 +02:00
Marek Posolda ec6b81e42d Merge pull request #3101 from mposolda/master
New component model & fixes
2016-08-02 08:10:11 +02:00
Bill Burke 3a5d4a3723 fix 2016-08-02 05:50:23 +02:00
Bill Burke 1d695237b7 fix 2016-08-02 05:49:50 +02:00
Bill Burke 09693eb108 component model 2016-08-02 05:48:57 +02:00
mposolda 3b3368eead KEYCLOAK-3237 Add scope=openid to KeycloakInstalled 2016-08-02 05:45:55 +02:00
mposolda a5cbe113fd Migration fix 2016-08-02 05:45:20 +02:00
mposolda 9688880837 Fix testsuite with mongo 2016-08-02 05:44:40 +02:00
Marek Posolda 98be930027 Merge pull request #3100 from mposolda/master
Fix travis
2016-08-02 05:42:29 +02:00
mposolda 83b4495e69 Fix travis 2016-08-02 05:40:03 +02:00
Pedro Igor bd73b0aee6 Merge pull request #3097 from pedroigor/KEYCLOAK-3385
[KEYCLOAK-3385] - Improvements to evaluation tool UI and result
2016-08-01 20:43:33 -03:00
Pedro Igor ae1a7542d8 [KEYCLOAK-3385] - Improvements to evaluation tool UI and result 2016-08-01 18:01:24 -03:00
Bill Burke 7d1bdf6e81 Update .travis.yml 2016-08-01 16:39:06 -04:00
Bill Burke d64e7394a7 fix 2016-08-01 14:55:06 -04:00
Bill Burke 059011e82f Update .travis.yml 2016-08-01 14:28:34 -04:00
Marek Posolda eaf28f72c1 Merge pull request #3095 from mposolda/saml-ignore-master
Ignore KcSamlBrokerTest and KcSamlSignedBrokerTest again
2016-08-01 19:04:11 +02:00
mposolda aa177dd9f9 Ignore KcSamlBrokerTest and KcSamlSignedBrokerTest again 2016-08-01 19:03:07 +02:00
Bill Burke a8a77add39 fix 2016-08-01 12:07:02 -04:00
Bill Burke 5facec73e4 Merge remote-tracking branch 'upstream/master' 2016-08-01 11:19:09 -04:00
Bill Burke 91a267a0d8 component model 2016-08-01 11:18:58 -04:00
Vaclav Muzikar 0147fbe489 KEYCLOAK-3381 Fix and stabilize some Console UI tests 2016-08-01 15:10:18 +02:00
Marek Posolda a9ccabdce5 Merge pull request #3089 from mposolda/master
Fix DB2 and Oracle
2016-08-01 14:32:12 +02:00
zschwarz e04ad9d7b6 Added general exclude for tests 2016-08-01 13:17:24 +02:00
mposolda c5d40a76ff Fix DB2 and Oracle 2016-08-01 12:31:16 +02:00
Thomas Darimont 79c7203fe8 KEYCLOAK-3380 Allow to configure paths to skip in KeycloakOIDCFilter
We now allow configuration of path patterns which should not
be handled by the `KeycloakOIDCFilter` than can be specified via
the new init-parameter `keycloak.config.skipPattern` of
the `KeycloakOIDCFilter`.
Patterns are matched against the requestURI without the context-path.
A request for `/myapp/index.html` would be matched with `/index.html`
against the skip pattern.
This allows for for more flexible path handling when using the
`KeycloakOIDCFilter` in combination with existing applications.

Signed-off-by: Thomas Darimont <thomas.darimont@gmail.com>
2016-08-01 11:43:49 +02:00
Marek Posolda 0d99b797b6 Merge pull request #3068 from mstruk/KEYCLOAK-2981-m
KEYCLOAK-2981 Upload-certificate admin endpoint does not nullify private keys
2016-08-01 11:20:55 +02:00
Marek Posolda 59f228be2b Merge pull request #3076 from Smartling/KEYCLOAK-3097
KEYCLOAK-3097: Fix JBoss Logging scope
2016-08-01 09:30:02 +02:00
Marek Posolda 159b752fb0 Merge pull request #3085 from pedroigor/master
[KEYCLOAK-3376] - Show authorization data when evaluating authorization requests
2016-08-01 09:09:55 +02:00
Marek Posolda b0c7746eeb Merge pull request #3084 from mhajas/KEYCLOAK-3165
KEYCLOAK-3165 Migrate SAML Filter tests to integration arquillian testsuite
2016-08-01 09:07:19 +02:00
Marek Posolda bbeac6d741 Merge pull request #3086 from cargosoft/KEYCLOAK-3369
KEYCLOAK-3369 Fire RealmPostCreateEvent
2016-08-01 08:56:09 +02:00
Marek Posolda a8eb3ca65a Merge pull request #3065 from wyvie/samltest
[KEYCLOAK-3035] Fixed broker tests, should not randomly fail anymore
2016-08-01 08:39:22 +02:00
Dmitry Telegin fea277a7f5 KEYCLOAK-3369: Fire RealmPostCreateEvent 2016-08-01 01:00:50 +03:00
wyvie cd94778dec [KEYCLOAK-3035] Fixed broker tests, should not randomly fail anymore 2016-07-31 18:57:15 +02:00
Pedro Igor bd5b434894 [KEYCLOAK-3376] - Show authorization data when evaluating authorization requests 2016-07-29 22:09:17 -03:00
Pedro Igor 26f0f6509a Merge pull request #3082 from pedroigor/master
[KEYCLOAK-3372] - Code cleanup and more testing
2016-07-29 19:28:01 -03:00
Pedro Igor 7983ed064f [KEYCLOAK-3372] - More tests and code cleanup 2016-07-29 15:25:36 -03:00
Pedro Igor 607b305c2f [KEYCLOAK-3372] - Adding tests for servlet authorization 2016-07-29 12:42:53 -03:00
Martin Kanis 8ad3c3fb03 Package Fuse adapter as overlay zip 2016-07-29 11:16:05 +02:00
mhajas 824890323d Migrate SAML Filter tests to integration arquillian tests 2016-07-29 11:06:09 +02:00
zschwarz 5011960cac Password policy tests refactoring 2016-07-29 10:24:13 +02:00
Pedro Igor 3c8ed8e3d8 [KEYCLOAK-3372] - Code cleanup 2016-07-29 05:18:38 -03:00
Pedro Igor e6ce2e138d Merge pull request #3081 from pedroigor/master
[KEYCLOAK-3338] More testing and improvements when importing role poicies
2016-07-28 15:10:30 -03:00
Pedro Igor 8cfa50f134 [KEYCLOAK-3338] More testing and improvements when importing role policies 2016-07-28 12:31:46 -03:00
Tomislav Rajaković 2b3859f462 Fixing typo in account resource bundle: editAccountHtmlTtile -> editAccountHtmlTitle 2016-07-28 16:34:52 +02:00
Bill Burke 5d9fe09599 Merge pull request #3070 from mstruk/KEYCLOAK-2571
KEYCLOAK-2571 RESET_PASSWORD_ERROR and UPDATE_PASSWORD_ERROR events not fired
2016-07-28 07:23:32 -04:00
Bill Burke 2219cd363e Merge pull request #3079 from patriot1burke/master
KEYCLOAK-3268
2016-07-28 07:22:45 -04:00
Pedro Igor b08800fbd8 Merge pull request #3072 from pedroigor/KEYCLOAK-3338
[KEYCLOAK-3338] - Adding client roles to role policy and UX improvements
2016-07-27 18:14:25 -03:00
Pedro Igor 7e1b97888a [KEYCLOAK-3338] - Adding client roles to role policy and UX improvements 2016-07-27 15:15:14 -03:00
Scott Rossillo 322597b420 KEYCLOAK-3097: Fix JBoss Logging scope
JBoss Logging Framework required by Keycloak Core.
2016-07-27 12:35:21 -04:00
Bill Burke bd499e1c55 fix pom 2016-07-27 10:37:16 -04:00
Bill Burke 46b4bb0909 KEYCLOAK-3268 2016-07-27 09:28:48 -04:00
Marko Strukelj 59e0570cdf KEYCLOAK-2571 RESET_PASSWORD_ERROR and UPDATE_PASSWORD_ERROR events not fired 2016-07-26 21:32:57 +02:00
Bill Burke c925033944 Merge remote-tracking branch 'upstream/master' 2016-07-26 11:31:22 -04:00
Marko Strukelj 94f583e935 KEYCLOAK-2981 Upload-certificate admin endpoint does not nullify private keys 2016-07-25 11:13:21 +02:00
Bill Burke 69f051fb0a test user fed registration spi 2016-07-23 08:55:06 -04:00
Bill Burke 3973aed57d Merge pull request #2989 from thomasdarimont/issue/KEYCLOAK-3234-allow-restricting-mapper-for-userinfo
KEYCLOAK-3234 Allow restricting claim mapper for userinfo endpoint
2016-07-22 17:54:00 -04:00
Bill Burke 73d3db6d00 Merge pull request #3063 from patriot1burke/master
user fed spi query fixes and tests.
2016-07-22 17:51:20 -04:00
Josh Cain 535a0763fc put imports back, new IDE snuck a * in there. 2016-07-22 14:57:07 -05:00
Josh Cain 283581f920 SamlProtocol should only drop attributes into a single attributeStatement element 2016-07-22 14:49:48 -05:00
Marek Posolda 488dee71d2 Merge pull request #3062 from mposolda/master
KEYCLOAK-3319 More OIDC tests. Minor refactoring
2016-07-22 20:49:14 +02:00
Bill Burke b6811b96b9 fix test 2016-07-22 14:42:17 -04:00
Bill Burke db852f7e11 preRemove 2016-07-22 14:24:37 -04:00
mposolda 01830fd7f3 KEYCLOAK-3319 More OIDC tests. Minor refactoring 2016-07-22 18:16:58 +02:00
Bill Burke 00d439b6f0 log level oops 2016-07-22 12:09:22 -04:00
Bill Burke 06fca9c897 Merge remote-tracking branch 'upstream/master' 2016-07-22 11:42:14 -04:00
Bill Burke 72d134748c user fed spi querying tests 2016-07-22 11:42:07 -04:00
fkiss e2ad7608c8 KEYCLOAK-2281 added ldap tests over ssl 2016-07-22 16:29:58 +02:00
Marek Posolda a73dd537f3 Merge pull request #3059 from mposolda/master
KEYCLOAK-3354 request and request_uri not supported
2016-07-22 15:12:25 +02:00
mposolda 9169bcd88d KEYCLOAK-3354 request and request_uri not supported 2016-07-22 13:44:45 +02:00
Marek Posolda 94af2e1789 Merge pull request #3058 from mposolda/master
KEYCLOAK-3318 Adapter support for prompt and max_age. Refactoring to …
2016-07-21 21:58:29 +02:00
mposolda 56e011dce4 KEYCLOAK-3318 Adapter support for prompt and max_age. Refactoring to not hardcode OIDC specifics to CookieAuthenticator 2016-07-21 18:19:53 +02:00
Marek Posolda 079026a7be Merge pull request #3055 from mposolda/master
KEYCLOAK-3344 Can't remove realm with mongo model
2016-07-21 14:18:49 +02:00
Pedro Igor 7c6cf8f3b7 Merge pull request #3054 from pedroigor/KEYCLOAK-3313
[KEYCLOAK-3313] - UI improvements and messages
2016-07-21 08:32:02 -03:00
mposolda 981ff90c81 KEYCLOAK-3344 Can't remove realm with mongo model 2016-07-21 12:47:25 +02:00
Pedro Igor 484d5d6e08 [KEYCLOAK-3313] - UI improvements and messages 2016-07-20 22:11:24 -03:00
Bill Burke 0315bd0b87 Merge remote-tracking branch 'upstream/master' 2016-07-20 17:26:15 -04:00
Bill Burke 2a05f00d0c user fed tests 2016-07-20 17:26:00 -04:00
Marek Posolda 05a804b972 Merge pull request #3052 from mposolda/master
KEYCLOAK-3318 Support for prompt=login. More tests for prompt parameter
2016-07-20 22:51:30 +02:00
mposolda f4ddfe4a52 KEYCLOAK-3318 Support for prompt=login. More tests for prompt parameter 2016-07-20 21:27:38 +02:00
Bill Burke 76c4fbb241 Merge pull request #3051 from patriot1burke/master
user fed spi fixes and simple test
2016-07-20 12:51:42 -04:00
Bill Burke 3b0fd71155 Merge pull request #3048 from pedroigor/KEYCLOAK-3320
[KEYCLOAK-3320] - Enable authorization services to WF8 adapter
2016-07-20 11:29:23 -04:00
Bill Burke 6f92bac782 Merge pull request #3000 from tonswieb/master
KEYCLOAK-3265 Support writing a NameIDType AttributeValue
2016-07-20 11:23:18 -04:00
Bill Burke 8b535c5da6 log level 2016-07-20 11:16:20 -04:00
Bill Burke e719722e32 Merge remote-tracking branch 'upstream/master' 2016-07-20 11:01:01 -04:00
Bill Burke c709598fdd user fed spi simple test 2016-07-20 10:59:45 -04:00
Stian Thorgersen 3ef0527a91 Merge pull request #3046 from pdrozd/KEYCLOAK-3336
KEYCLOAK-3336 Arquillian testuite: Added possibility to install serve…
2016-07-20 14:58:29 +02:00
Marek Posolda eb12a307f7 Merge pull request #3050 from mposolda/master
KEYCLOAK-1733 added verifySSL checks for 'basic' and 'query' authenti…
2016-07-20 14:01:35 +02:00
Pedro Igor f36a68308d [KEYCLOAK-3320] - Enable authorization services to WF8 adapter 2016-07-20 08:16:37 -03:00
mposolda 7571dc07f9 KEYCLOAK-1733 added verifySSL checks for 'basic' and 'query' authentication 2016-07-20 11:04:31 +02:00
Marek Posolda e03bf6eef6 Merge pull request #2990 from trex667/feat/keycloak-1733
[KEYCLOAK-1733]: introduce token as query paramter
2016-07-20 10:46:11 +02:00
Pavel Drozd 0e470d75e9 KEYCLOAK-3336 Arquillian testuite: Added possibility to install server patch 2016-07-19 14:22:49 +02:00
Stian Thorgersen 187f4a49ad Merge pull request #3044 from thomasdarimont/issue/KEYCLOAK-3301-support-undertow-in-spring-boot-adapter
KEYCLOAK-3301 Add support for Undertow in Spring Boot Adapter
2016-07-19 09:29:52 +02:00
Stian Thorgersen 0a5e061ca6 Merge pull request #3045 from mhajas/KEYCLOAK-3326
KEYCLOAK-3326 Fix invalidRequesterMessage in tests
2016-07-19 09:29:15 +02:00
Stian Thorgersen 1b517a461e Merge pull request #3041 from stianst/KEYCLOAK-3302
KEYCLOAK-3302 Allow logout with expired refresh token
2016-07-19 08:03:52 +02:00
mhajas a913b8a158 Fix invalidRequesterMessage in tests 2016-07-18 14:21:28 +02:00
Thomas Darimont f574173ed3 KEYCLOAK-3301 Add support for Undertow in Spring Boot Adapter
We now support using Undertow in combination with the Spring Boot Adapter.
2016-07-18 10:07:07 +02:00
Marek Posolda a6bdf81e6d Merge pull request #3040 from mposolda/master
KEYCLOAK-3220 Added test for missing response_type
2016-07-15 22:19:52 +02:00
Stian Thorgersen a42e4af78d Merge pull request #3018 from thomasdarimont/issue/KEYCLOAK-3300-support-jetty-in-spring-boot-adapter
KEYCLOAK-3300 Add support for jetty in spring-boot-adapter
2016-07-15 13:29:16 +02:00
Stian Thorgersen b1ae0a9000 Merge pull request #3003 from iconoeugen/fix/update_server_spi_module_deps_for_script_based
KEYCLOAK-3285: Update server-spi module to include deps required by script based flow executor
2016-07-15 13:27:28 +02:00
Stian Thorgersen 07d7141d98 Merge pull request #3042 from stianst/master
Ignore unstable tests
2016-07-15 12:59:33 +02:00
Stian Thorgersen 0632bc8939 Ignore unstable tests 2016-07-15 12:59:15 +02:00
Stian Thorgersen e708c53730 KEYCLOAK-3302 Allow logout with expired refresh token 2016-07-15 12:56:31 +02:00
mposolda 243105f952 KEYCLOAK-3175 Document run of OIDC Conformance test 2016-07-15 12:51:35 +02:00
Stian Thorgersen 1ce17c459d Merge pull request #3039 from stianst/KEYCLOAK-3192
KEYCLOAK-3192 Ignore disabled required action
2016-07-15 10:38:49 +02:00
Stian Thorgersen daa4d23ac0 Merge pull request #3038 from stianst/KEYCLOAK-3170
KEYCLOAK-3170 Users with only view-users and impersonate can't impers…
2016-07-15 10:38:32 +02:00
Stian Thorgersen 30d651bcee Merge pull request #3036 from stianst/master
Added umlats test to registration test
2016-07-15 10:38:23 +02:00
mposolda fda0a79e27 KEYCLOAK-3237 Add scopes_supported to OIDC WellKnown endpoint 2016-07-15 09:47:09 +02:00
mposolda 021c2ec701 KEYCLOAK-3220 Added test for missing response_type 2016-07-15 09:15:09 +02:00
Stian Thorgersen fbf00ba1cd Added umlats test to registration test 2016-07-15 09:05:41 +02:00
Marek Posolda a2ead8743f Merge pull request #3035 from mposolda/master
OIDC fixes
2016-07-15 09:03:31 +02:00
Stian Thorgersen 5a0b86f814 Merge pull request #3037 from stianst/KEYCLOAK-3266
KEYCLOAK-3266 password policy NotUsername breaks new user registration
2016-07-15 09:03:02 +02:00
Stian Thorgersen 970c89dd6a KEYCLOAK-3192 Ignore disabled required action 2016-07-15 09:01:44 +02:00
Stian Thorgersen f9bfb5d3e5 KEYCLOAK-3170 Users with only view-users and impersonate can't impersonate in the UI 2016-07-15 07:52:21 +02:00
Stian Thorgersen f384c2340e KEYCLOAK-3266 password policy NotUsername breaks new user registration 2016-07-15 07:34:13 +02:00
Stian Thorgersen 2f14fb7fb7 Merge pull request #3033 from rpieciorak/patch-1
Remove link to missing ReleaseProcess.md
2016-07-15 06:04:31 +02:00
Stian Thorgersen fe367d207a Merge pull request #3022 from vmuzikar/KEYCLOAK-3212
KEYCLOAK-3212 Improve Console UI tests stability in FF, Chrome and IE
2016-07-15 06:03:32 +02:00
mposolda 13a21e5fda KEYCLOAK-3220 Improve error handling on adapters 2016-07-14 23:56:46 +02:00
mposolda dcc4ea3aea KEYCLOAK-3237 Change OIDC adapters to use scope=openid as required per specs 2016-07-14 23:56:46 +02:00
Pedro Igor 7bc34c0ba4 Merge pull request #3034 from pedroigor/KEYCLOAK-3137
[KEYCLOAK-3137] - Review i18n for AuthZ Services
2016-07-14 15:22:41 -03:00
Pedro Igor aacf2e9390 [KEYCLOAK-3137] - Review i18n for AuthZ Services 2016-07-14 13:54:37 -03:00
Rafał Pięciorak 966a580895 Remove link to missing ReleaseProcess.md 2016-07-14 17:06:03 +02:00
Marek Posolda bffbc9e198 Merge pull request #3032 from mposolda/KEYCLOAK-3223
KEYCLOAK-3223 Basic support for acr claim
2016-07-14 16:26:36 +02:00
mposolda ee3ac3fdaf KEYCLOAK-3223 Basic support for acr claim 2016-07-14 12:36:12 +02:00
Stian Thorgersen 9ddec7d1eb Merge pull request #3019 from ssilvert/KEYCLOAK-3273-ear
KEYCLOAK-3273: Prefer module name for secure-deployment in Keycloak
2016-07-14 12:06:44 +02:00
Stian Thorgersen 4f1d83b9dc Merge pull request #3030 from stianst/KEYCLOAK-2824-2
KEYCLOAK-2824 Password Policy SPI
2016-07-14 10:12:25 +02:00
Marek Posolda eeabc0092b Merge pull request #3031 from mposolda/master
KEYCLOAK-3220 redirect to client with error if possible
2016-07-14 08:30:18 +02:00
Stian Thorgersen ea44b5888b KEYCLOAK-2824 Password Policy SPI 2016-07-14 07:20:30 +02:00
mposolda abde62f369 KEYCLOAK-3220 redirect to client with error if possible 2016-07-13 20:57:43 +02:00
Marek Posolda 16184d1e9d Merge pull request #3029 from mposolda/master
KEYCLOAK-3281 OIDC 'state' parameter is url-encoded twice when respon…
2016-07-13 19:16:35 +02:00
mposolda 38f89b93ff KEYCLOAK-3281 OIDC 'state' parameter is url-encoded twice when responseMode=form_post 2016-07-13 18:07:57 +02:00
Marek Posolda 912bc8464e Merge pull request #3028 from mposolda/KEYCLOAK-3219
KEYCLOAK-3219 Added claims info to OIDCWellKnownProvider. More tests
2016-07-13 12:28:29 +02:00
mposolda d5199501c7 KEYCLOAK-3219 Added claims info to OIDCWellKnownProvider. More tests 2016-07-13 10:17:45 +02:00
Stian Thorgersen f9235cb07d Merge pull request #3020 from realityforge/FilterSessionStore_getDateHeader
KEYCLOAK-3308: Return -1 from getDateHeader() when request is restored.
2016-07-13 08:38:53 +02:00
Stian Thorgersen d7649c2547 Merge pull request #3024 from stianst/KEYCLOAK-3267
KEYCLOAK-3267 Fix identity broker login with brute force enabled
2016-07-13 07:37:52 +02:00
Thomas Darimont be5468a7cf KEYCLOAK-3300 Add support for jetty in spring-boot-adapter
This adds support for using Jetty together with the Keycloak
spring-boot-adapter. Sadly the KeycloakSpringBootProperties.SecurityCollection
definition is mostly inspired by Tomcats SecurityConstraint/SecurityCollection
which doesn't provide a good fit for jettys structures.
In cases where jetty only allows one setting, we use the first value.

We only initialize KeycloakJettyServerCustomizer if jetty is used, same
applies for tomcat.
Revised configuration and extracted serverCustomizer code into
dedicated classes.
Prepared infrastructure for Undertow support.
2016-07-12 23:19:30 +02:00
Pedro Igor eba56e4784 Merge pull request #3027 from pedroigor/KEYCLOAK-3305
[KEYCLOAK-3305] - Cache is not properly handling failures when importing configuration
2016-07-12 17:57:47 -03:00
Marek Posolda 26efb2cbee Merge pull request #3026 from mposolda/master
KEYCLOAK-3306 Added reproducer test for OutdatedTopologyException
2016-07-12 21:47:01 +02:00
Pedro Igor 02896768f5 [KEYCLOAK-3305] - Cache is not properly handling failures when importing configuration 2016-07-12 13:57:49 -03:00
Stan Silvert 1d4e76117c KEYCLOAK-3273: Prefer module name for secure-deployment name. 2016-07-12 12:42:24 -04:00
mposolda a912ba3148 KEYCLOAK-3306 Added reproducer test for OutdatedTopologyException 2016-07-12 18:12:20 +02:00
Stian Thorgersen 5b0980172d KEYCLOAK-3267 Fix identity broker login with brute force enabled 2016-07-12 15:21:00 +02:00
Stian Thorgersen ff8dce77f3 Merge pull request #3021 from stianst/master
KEYCLOAK-3143 Wrong field name in login theme message properties
2016-07-12 13:57:40 +02:00
Vaclav Muzikar 7dbdb023a0 KEYCLOAK-3212 Improve Console UI tests stability in FF, Chrome and IE 2016-07-12 11:39:27 +02:00
Stian Thorgersen 2fa200889a KEYCLOAK-3143 Wrong field name in login theme message properties 2016-07-12 10:49:13 +02:00
Stian Thorgersen f97d0846ed Merge pull request #3010 from wadahiro/KEYCLOAK-3278
KEYCLOAK-3278 Add support for any encoding property file in theme
2016-07-12 10:34:34 +02:00
Stian Thorgersen 19e5ddeba5 Merge pull request #3015 from martin-kanis/master
KEYCLOAK-3096 Remove leading/trailing spaces from username/email
2016-07-12 10:03:55 +02:00
Stian Thorgersen df090fa5e1 Merge pull request #3012 from wadahiro/KEYCLOAK-3289
KEYCLOAK-3289 Fixed 'User Enabled' toggled incorrectly
2016-07-12 10:01:23 +02:00
Peter Donald c283f9803c Return -1 from getDateHeader() when request is restored.
Other certain container will attempt to access date (such as when
checking If-Modified-Since header)  and fail when accessing restored
request. The javax.servlet.http.HttpServletRequest#getDateHeader()
javadocs indicate that -1 should be returned when date is not available
2016-07-12 16:28:45 +10:00
Stian Thorgersen 3a370e2726 Merge pull request #3006 from vmuzikar/KEYCLOAK-3280-master
KEYCLOAK-3280 Alerts in Admin Console are sometimes shown only for a split second
2016-07-12 07:30:37 +02:00
Stan Silvert 73cbf857c1 KEYCLOAK-3273: Prefer module name for secure-deployment in Keycloak
adapter subsystem
2016-07-11 20:58:31 -04:00
Marek Posolda 64ad222a28 Merge pull request #3017 from mposolda/rhit
KEYCLOAK-3296 same user logging twice at the same time causes lock is…
2016-07-11 21:42:31 +02:00
mposolda 6e94931023 KEYCLOAK-3296 same user logging twice at the same time causes lock issue - HQL deletion patch 2016-07-11 19:40:24 +02:00
Marek Posolda ba3b6fd564 Merge pull request #3016 from mposolda/master
KEYCLOAK-3295 Kerberos authenticator changed during userFederationPro…
2016-07-11 17:15:48 +02:00
mposolda 039bb103c2 KEYCLOAK-3295 Kerberos authenticator changed during userFederationProvider update just if it was DISABLED 2016-07-11 15:52:49 +02:00
Stian Thorgersen e946c1c512 Merge pull request #3011 from stianst/KEYCLOAK-3202
Add versions for Jetty 9.3 adapter dists
2016-07-11 08:02:35 +02:00
Martin Kanis c67d834d39 KEYCLOAK-3096 Remove leading/trailing spaces from login 2016-07-09 18:35:51 +02:00
Marek Posolda 8bdfd57e9b Merge pull request #3014 from mposolda/KEYCLOAK-3222
OIDC client auth fixes & tests
2016-07-08 18:16:43 +02:00
mposolda 629390dd4a KEYCLOAK-2986 Require either expiration or issuedAt for client authentication with signed JWT 2016-07-08 16:16:38 +02:00
mposolda 3bfd999590 KEYCLOAK-3222 extend WellKnown to return supported types of client authentications. More tests 2016-07-08 15:39:13 +02:00
Pedro Igor 80a67149af Merge pull request #3002 from pedroigor/KEYCLOAK-3249
[KEYCLOAK-3249] - AuthorizationContext.hasScopePermission() gives NPE
2016-07-08 09:16:51 -03:00
Marek Posolda 7962f68991 Merge pull request #3013 from mposolda/KEYCLOAK-3221
OIDC fixes
2016-07-08 14:08:06 +02:00
mposolda c10a005997 KEYCLOAK-3290 UserInfoEndpoint error responses don't have correct statuses 2016-07-08 12:15:07 +02:00
mposolda 4dd28c0adf KEYCLOAK-3221 Tokens should be invalidated if an attempt to reuse code is made 2016-07-08 11:04:08 +02:00
Stian Thorgersen 4bdd67da79 Add versions for Jetty 9.3 adapter dists 2016-07-08 08:21:03 +02:00
Hiroyuki Wada 8e24c73ac8 KEYCLOAK-3289 Fixed 'User Enabled' toggled incorrectly when 'Federation Link' label is clicked 2016-07-08 15:09:58 +09:00
Bill Burke bd2887aa77 Merge pull request #2982 from ahus1/jetty_9_3
KEYCLOAK-2684: jetty 9.3 implementation (oidc/saml)
2016-07-07 14:59:29 -04:00
Bill Burke bdc57d57c1 Merge pull request #3008 from patriot1burke/master
new User Fed SPI initial iteration
2016-07-07 14:56:38 -04:00
Marek Posolda 38cc183be5 Merge pull request #3009 from mposolda/master
KEYCLOAK-3218 Support for max_age OIDC authRequest parameter and supp…
2016-07-07 20:01:50 +02:00
Hiroyuki Wada 930b0d9ad7 KEYCLOAK-3278 Add support for any encoding property file in theme 2016-07-08 02:58:48 +09:00
Bill Burke bf2ca4008e log level info 2016-07-07 12:06:57 -04:00
mposolda a7c9e71490 KEYCLOAK-3218 Support for max_age OIDC authRequest parameter and support for auth_time in IDToken 2016-07-07 17:04:32 +02:00
Bill Burke 0040d3fc3b Merge remote-tracking branch 'upstream/master' 2016-07-07 10:35:45 -04:00
Bill Burke 7e5a5f79cf fixes for new user fed spi 2016-07-07 10:35:35 -04:00
Marek Posolda 7a161cc8bb Merge pull request #3005 from mposolda/KEYCLOAK-3217
KEYCLOAK-3217 UserInfo endpoint wasn't accessible by POST request sec…
2016-07-07 13:49:43 +02:00
Marek Posolda c5e8a010dc Merge pull request #3004 from mposolda/KEYCLOAK-3147
KEYCLOAK-3147 Don't allow authRequest without redirect_uri parameter
2016-07-07 13:49:34 +02:00
Vaclav Muzikar 5638e9e1c5 KEYCLOAK-3280 Alerts in Admin Console are sometimes shown only for a split second 2016-07-07 13:44:28 +02:00
mposolda 56e09bf189 KEYCLOAK-3147 Don't allow authRequest without redirect_uri parameter 2016-07-07 12:46:36 +02:00
mposolda 7aafbcd5d9 KEYCLOAK-3217 UserInfo endpoint wasn't accessible by POST request secured with Bearer header 2016-07-07 12:28:25 +02:00
Stian Thorgersen 78fbf45b80 Merge pull request #2991 from ssilvert/RHSSO-296
KEYCLOAK-3244: Required Action "Configure Totp" should be "Configure OTP"
2016-07-07 11:43:50 +02:00
Horatiu Eugen Vlad bd124d5f9b Update server-spi module deps to include dependencies required by script based flow executor. 2016-07-06 18:00:46 +02:00
Pedro Igor 5ef65e837c [KEYCLOAK-3249] - AuthorizationContext.hasScopePermission() gives NPE 2016-07-06 09:39:56 -03:00
Stian Thorgersen 2591dd862b Merge pull request #2976 from vramik/KEYCLOAK-3151
KEYCLOAK-3151 removed adapter libs mode from testsuite
2016-07-06 14:21:07 +02:00
awpwb 159b371973 [KEYCLOAK-1733]: introduce token as query paramter
add functional tests for access token as query paramter
2016-07-06 14:12:23 +02:00
Stian Thorgersen 948f37b01a Merge pull request #2997 from pedroigor/KEYCLOAK-3246
[KEYCLOAK-3246] - Authz client missing from tomcat 8 OpenID adapter
2016-07-06 09:24:19 +02:00
Stian Thorgersen 1f41b3195f Merge pull request #3001 from stianst/KEYCLOAK-3202
KEYCLOAK-3202 Creating users causes memory leak
2016-07-06 09:22:40 +02:00
Stan Silvert 4628946a55 Automatically migrate required action name. 2016-07-05 15:07:54 -04:00
Stan Silvert a231c1b31b RHSSO-296: Required Action "Configure Totp" should be "Configure OTP" 2016-07-05 15:07:52 -04:00
Stian Thorgersen 3fc215d041 KEYCLOAK-3202 Creating users causes memory leak 2016-07-05 19:54:55 +02:00
Ton Swieb fed7339558 KEYCLOAK-3265 Support writing a NameIDType AttributeValue 2016-07-05 14:54:38 +02:00
Stian Thorgersen 7e0238d1c7 Merge pull request #2998 from stianst/KEYCLOAK-3262
KEYCLOAK-3262 Add support to save multiple state in keycloak.js
2016-07-05 09:48:28 +02:00
Stian Thorgersen 2dd0d7189e Merge pull request #2999 from stianst/KEYCLOAK-3189
KEYCLOAK-3189 KEYCLOAK-3190 Add kid and typ to JWT header
2016-07-05 09:33:21 +02:00
Stian Thorgersen f52504ac41 KEYCLOAK-3262 Add support to save multiple state in keycloak.js 2016-07-05 08:45:12 +02:00
Stian Thorgersen 7cfee80e58 KEYCLOAK-3189 KEYCLOAK-3190 Add kid and typ to JWT header 2016-07-05 08:26:26 +02:00
Stian Thorgersen 435cdb6180 Merge pull request #2994 from wadahiro/KEYCLOAK-3259
KEYCLOAK-3259 Specify UTF-8 encoding for freemarker template files
2016-07-04 19:25:03 +02:00
Stian Thorgersen fe856d3fa7 Merge pull request #2992 from ssilvert/RHSSO-274
KEYCLOAK-3243: "Undefined" as auth flow execution
2016-07-04 19:24:30 +02:00
Stian Thorgersen 98923d0ea4 Merge pull request #2971 from mhajas/fixRelative
KEYCLOAK-3195 Fix example adapter tests on relative scenario
2016-07-04 19:22:06 +02:00
Stian Thorgersen dd6434a487 Merge pull request #2995 from stianst/KEYCLOAK-2617
KEYCLOAK-2617 Ignore postmessages if not initiated by keycloak.js
2016-07-04 19:19:34 +02:00
Stian Thorgersen 842b811a41 Merge pull request #2987 from ssilvert/RHSSO-319
KEYCLOAK-3242: Some hints in admin console contain backslash in front of
2016-07-04 19:17:29 +02:00
Stian Thorgersen 07ab632351 Merge pull request #2986 from ssilvert/RHSSO-253
KEYCLOAK-3240: No tooltip shown for Client Mapper Type
2016-07-04 19:16:57 +02:00
Julien Giovaresco 9bcfda64fa Fix typo in email and login french translations 2016-07-04 19:14:36 +02:00
Stian Thorgersen 453859d14f Merge pull request #2993 from stianst/KEYCLOAK-2660
KEYCLOAK-2660 Test updating user without including username with brut…
2016-07-04 19:11:56 +02:00
Stian Thorgersen 122cb1f490 Merge pull request #2925 from chameleon82/issue/KEYCLOAK-3102-russian-localization
KEYCLOAK-3102 Add russian localization
2016-07-04 19:03:04 +02:00
Pedro Igor 6bb59b7f63 [KEYCLOAK-3246] - Authz client missing from tomcat 8 OpenID adapter 2016-07-04 13:27:14 -03:00
Pedro Igor 1ec88cf5b0 Merge pull request #2996 from pedroigor/KEYCLOAK-3248
[KEYCLOAK-3248] - Permissions don't unlink from resources and scopes
2016-07-04 13:16:44 -03:00
Pedro Igor 74139ec787 [KEYCLOAK-3248] - Permissions don't unlink from resources and scopes 2016-07-04 09:33:46 -03:00
Stian Thorgersen f3a780cc2d KEYCLOAK-2617 Ignore postmessages if not initiated by keycloak.js 2016-07-04 13:07:17 +02:00
Hiroyuki Wada 00cb0a798a KEYCLOAK-3259 Specify UTF-8 encoding for freemarker template files 2016-07-04 19:46:00 +09:00
Stian Thorgersen c9bbfc3b0b KEYCLOAK-2660 Test updating user without including username with brute force enabled 2016-07-04 12:37:26 +02:00
Alex cb085cc598 KEYCLOAK-3102 update Russian grammar in admin console 2016-07-02 10:04:57 +06:00
Alex a8b39edd73 KEYCLOAK-3102 Fix russian grammar in admin messages 2016-07-01 23:17:36 +06:00
Stan Silvert 8b8ebfc7e1 Fix failing test. 2016-07-01 12:24:13 -04:00
Stan Silvert d90a708ceb RHSSO-274: "Undefined" as auth flow execution 2016-07-01 10:25:14 -04:00
Stian Thorgersen 450b57c76a Merge pull request #2984 from stianst/master
KEYCLOAK-3172 Add view authorization role to existing realms
2016-07-01 12:41:09 +02:00
Stian Thorgersen fa312fb3db Merge pull request #2979 from cainj13/localeNpeFix
make locale retrieval null-safe
2016-07-01 12:33:36 +02:00
Alexander Schwartz 9384aa1398 KEYCLOAK-2684: jetty 9.3 implementation 2016-07-01 12:26:59 +02:00
Thomas Darimont ce7e7ef1d7 KEYCLOAK-3234 Allow restricting claim mapper for userinfo endpoint
Client mappers can now be configured to be limited to the
userinfo endpoint. This allows to keep access-tokens lean
while providing extended user information on demand via the
userinfo endpoint.
2016-07-01 11:35:19 +02:00
Bill Burke a19469aba5 Merge remote-tracking branch 'upstream/master' 2016-06-30 17:18:17 -04:00
Bill Burke b224917fc5 bump version 2016-06-30 17:17:53 -04:00
Bill Burke 3f1eecc4be Merge remote-tracking branch 'upstream/master' 2016-06-30 16:47:55 -04:00
Bill Burke 3ba3be877e fixes 2016-06-30 16:47:49 -04:00
Stan Silvert daefbcf994 RHSSO-319: Some hints in admin console contain backslash in front of
collon
2016-06-30 13:32:21 -04:00
Stan Silvert 5d9669e5a6 RHSSO-253: No tooltip shown for Client Mapper Type 2016-06-30 13:10:47 -04:00
Pedro Igor 1e7745b5c3 Merge pull request #2978 from pedroigor/authz-tests
[Authorization] - Integration tests
2016-06-30 13:32:28 -03:00
Pedro Igor 46d02f15fe [KEYCLOAK-2999] - Authorization arquillian tests 2016-06-30 10:26:05 -03:00
Pedro Igor 01f3dddd91 Adding a column to list policies associated with a permission. 2016-06-30 10:26:05 -03:00
Pedro Igor 2db41ef052 [KEYCLOAK-2999] - Changes to authz examples for integration test 2016-06-30 10:26:05 -03:00
Pedro Igor afa9471c7c [KEYCLOAK-3128] - Admin Client Authorization Endpoints 2016-06-30 10:26:05 -03:00
Stian Thorgersen 08f28de903 Removed release process doc as it's now in a private document 2016-06-30 09:46:46 +02:00
Stian Thorgersen 1fe8da67dc KEYCLOAK-3172 Add view authorization role to existing realms 2016-06-30 08:52:18 +02:00
Stian Thorgersen 591a794247 Merge pull request #2983 from stianst/master
Update messages_fr.properties
2016-06-30 07:34:30 +02:00
Alexandre a9e8f315a4 Update messages_fr.properties
Change the word "adminitrateur" to "administrateur"

The "s" was missing in "admini-S-trateur"

That all !
2016-06-30 07:34:17 +02:00
Stian Thorgersen c738f9fbd3 Merge pull request #2981 from pedroigor/KEYCLOAK-3172
[KEYCLOAK-3172] - Migrating older versions with authorization services.
2016-06-30 07:31:39 +02:00
Stian Thorgersen 588f6ba253 Merge pull request #2965 from mhajas/fixSSLTrustore
KEYCLOAK-3174 Fix duplicate plugin for adding truststore
2016-06-30 07:29:09 +02:00
Bill Burke a9f6948d74 Merge remote-tracking branch 'upstream/master' 2016-06-29 15:37:32 -04:00
Bill Burke f51098c50b user fed refactor 2016-06-29 15:37:22 -04:00
Pedro Igor 8b0bf503c3 [KEYCLOAK-3172] - Migrating older versions with authorization services. 2016-06-29 12:07:49 -03:00
Josh Cain ec402f759b make locale retrieval null-safe 2016-06-28 13:25:48 -05:00
Marek Posolda bc82f18acb Merge pull request #2974 from mposolda/master
KEYCLOAK-3194 Fix fuse adapter. Remove karaf related steps from README
2016-06-27 22:17:31 +02:00
Stian Thorgersen a001d53d2a Merge pull request #2972 from iperdomo/master
[KEYCLOAK-3185] Fix navigation resource > permission
2016-06-27 16:20:25 +02:00
mposolda 1a4d03e283 KEYCLOAK-3194 Fix fuse adapter. Remove karaf related steps from README 2016-06-27 15:43:23 +02:00
Iván Perdomo 8a8bf47043 [KEYCLOAK-3185] Fix navigation resource > permission 2016-06-27 14:21:19 +02:00
mhajas 836ab2820a Fix adapter tests on relative scenario 2016-06-27 14:18:32 +02:00
Alex 01d0821142 KEYCLOAK-3102 Fix grammar 2016-06-25 13:30:22 +06:00
Vlasta Ramik 47fab2d034 removed adapter libs mode from testsuite 2016-06-24 13:32:03 +02:00
Stian Thorgersen fc295ac2ac Merge pull request #2964 from stianst/master
Remove testsuite/stress
2016-06-24 13:04:52 +02:00
mhajas 69919902b4 Fix duplicate plugin for adding truststore 2016-06-24 12:50:39 +02:00
Stian Thorgersen a6af72cbbc Removed perf package from testsuite/integration 2016-06-24 10:59:05 +02:00
Stian Thorgersen 4aa102fcab Remove testsuite/stress 2016-06-24 10:59:05 +02:00
Stian Thorgersen 0dc8bb7c3b Merge pull request #2963 from ssilvert/migrate-importexport
KEYCLOAK-3031 Migrate exportimport package to arquillian testsuite
2016-06-24 10:44:46 +02:00
Stan Silvert 5e450d5cd4 Minor cleanup. 2016-06-23 11:09:57 -04:00
Stan Silvert 38722e8273 KEYCLOAK-3031 Migrate exportimport package to arquillian testsuite 2016-06-23 11:09:55 -04:00
Stian Thorgersen ce17999d26 Merge pull request #2962 from stianst/master
Add retry to testPostEncryptedLoginLogout
2016-06-23 15:48:43 +02:00
Stian Thorgersen d869ab2823 Add retry to testPostEncryptedLoginLogout 2016-06-23 15:48:18 +02:00
Marek Posolda 5dc6f2f835 Merge pull request #2961 from mposolda/master
Fix Oracle DB
2016-06-23 14:58:28 +02:00
mposolda 9b9a656192 Fix Oracle DB 2016-06-23 13:23:44 +02:00
Marek Posolda 7e985dce85 Merge pull request #2960 from mposolda/master
Fix DB2 and MSSQL
2016-06-23 12:57:09 +02:00
Stian Thorgersen 184108c5ff Merge pull request #2959 from stianst/master
Remove old performance testsuite
2016-06-23 12:21:27 +02:00
mposolda f6ce1438fd Fix DB2 and MSSQL 2016-06-23 11:01:30 +02:00
Stian Thorgersen 1b9fe8edf7 Remove old performance testsuite 2016-06-23 10:59:02 +02:00
Marek Posolda e205535c55 Merge pull request #2958 from mposolda/master
Fix ResourceManagementTest.testFindById to pass with other RDBMS besi…
2016-06-23 10:57:40 +02:00
mposolda 5c25619cd6 Fix ResourceManagementTest.testFindById to pass with other RDBMS besides H2 2016-06-23 09:42:59 +02:00
Stian Thorgersen 2e2f34d94e Merge pull request #2957 from pedroigor/authz-changes
Changes to authz examples and some minor improvements
2016-06-23 07:49:47 +02:00
Pedro Igor 7eab4bc859 Updating example's README. 2016-06-23 01:02:39 -03:00
Pedro Igor 074a312fe5 Renaming authorization attributes. 2016-06-22 17:20:50 -03:00
Pedro Igor 7512abe9a7 Renaming Scopes tab to Authorization Scopes 2016-06-22 16:58:09 -03:00
Pedro Igor f48288865b [KEYCLOAK-3156] - Missing CORS when responding with denies 2016-06-22 14:39:07 -03:00
Pedro Igor 333bdb62dd [KEYCLOAK-3155] - Minor improvements to servlet-authz-app example 2016-06-22 14:36:43 -03:00
Pedro Igor 07824bdc4d [KEYCLOAK-3154] - Rename Photoz modules and directories to remove UMA identifier 2016-06-22 14:33:29 -03:00
Pedro Igor 905421a292 [KEYCLOAK-3152] - Keycloak Authorization JS Adapter 2016-06-22 14:28:02 -03:00
Marek Posolda 363e948141 Merge pull request #2956 from mposolda/master
KEYCLOAK-3141 Fix DB2 and some other DB issues
2016-06-22 19:25:15 +02:00
mposolda f7a2ad021e KEYCLOAK-3141 Fix DB2 and some other DB issues 2016-06-22 17:06:55 +02:00
Stian Thorgersen e2082ce29f Merge pull request #2950 from vramik/KEYCLOAK-3140
KEYCLOAK-3140 - fixed HTTP 404 Not Found by removing duplicate declaration of plugins in auth-server-jboss
2016-06-22 15:12:01 +02:00
Stian Thorgersen 462843cc9c Merge pull request #2955 from abstractj/readme-update
Update readme file with correct title
2016-06-22 15:11:50 +02:00
Stian Thorgersen 5890f7cae1 Merge pull request #2954 from stianst/master
KEYCLOAK-3093 Remove documentation from main repository
2016-06-22 15:11:38 +02:00
Bruno Oliveira 767c832f24 Update readme file with correct title 2016-06-22 09:48:59 -03:00
Bill Burke 6e4abe19f3 Merge pull request #2936 from tonswieb/master
KEYCLOAK-3100 Rearrange SingleLogoutService and NameIDFormat
2016-06-22 08:48:20 -04:00
Stian Thorgersen 107830bd2c KEYCLOAK-3093 Remove documentation from main repository 2016-06-22 13:40:21 +02:00
Marek Posolda 90d0ee7934 Merge pull request #2952 from mposolda/master
KEYCLOAK-3149 DB update triggered before DBLock was acquired
2016-06-21 18:28:50 +02:00
mposolda 5c731b4d14 KEYCLOAK-3149 DB update triggered before DBLock is retrieved 2016-06-21 17:14:25 +02:00
Pedro Igor 8402cedd82 Merge pull request #2946 from pedroigor/KEYCLOAK-3130
[KEYCLOAK-3130] - Permission checks to authorization admin endpoints
2016-06-21 10:50:29 -03:00
Marek Posolda 190a1beefa Merge pull request #2951 from mposolda/KEYCLOAK-2474
KEYCLOAK-2474 Possibility to add custom SPI and extend the data model
2016-06-21 15:31:12 +02:00
Pedro Igor 0a7504f9a8 Merge pull request #2945 from pedroigor/KEYCLOAK-3132
Changes to authz modules and dependencies
2016-06-21 10:12:54 -03:00
mposolda da945a69e6 KEYCLOAK-2474 Added test 2016-06-21 13:47:41 +02:00
mposolda c4513fdad9 KEYCLOAK-2474 Polishing. Support for separate changelock table per changelog. Support for authenticated endpoint in domain-extension example 2016-06-21 12:06:22 +02:00
Vlasta Ramik 48bd019165 fixed duplicate declaration of plugins in auth-server-jboss 2016-06-21 11:21:52 +02:00
Alex 61be5cc90e KEYCLOAK-3102 Fix Russian translation more cleaner 2016-06-21 01:16:05 +06:00
Pedro Igor 5f91f4e466 [KEYCLOAK-3062] - Async configuration to KeycloakServer 2016-06-20 11:55:17 -03:00
Pedro Igor d5167c1632 [KEYCLOAK-3134] - Remove 'org.keycloak.keycloak-authz-server' module 2016-06-20 11:54:32 -03:00
Erik Mulder 44d7d776bc KEYCLOAK-2474: Added Example project for Domain Extension (WIP) 2016-06-20 11:29:14 +02:00
Erik Mulder f4ead484de KEYCLOAK-2474 Possibility to add custom SPI and extend the data model 2016-06-20 10:56:33 +02:00
Pedro Igor 6a1fb8f870 [KEYCLOAK-3132] - Single module for common policy providers 2016-06-17 20:38:03 -03:00
Pedro Igor dd279dd0fd [KEYCLOAK-3130] - Permission checks to authorization admin endpoints 2016-06-17 15:27:42 -03:00
Stian Thorgersen 111bcb7433 Merge pull request #2942 from stianst/master
Refactor authz changelog in to separate authz-master.xml
2016-06-17 15:26:43 +02:00
Stian Thorgersen 8f3cfed7c5 Merge pull request #2934 from fkiss/master-truststore
KEYCLOAK-2283 added email truststore test
2016-06-17 14:05:38 +02:00
Stian Thorgersen 807fc71626 Merge pull request #2939 from mhajas/fixEAP6
KEYCLOAK-3125 Fix ssl tests on EAP6
2016-06-17 14:02:23 +02:00
Stian Thorgersen 8ae08f0432 Merge pull request #2938 from mhajas/addJSConsoleTests-master
KEYCLOAK-3121 Add JS adapter tests
2016-06-17 14:01:21 +02:00
Stian Thorgersen 2beb1f2466 Merge branch 'KEYCLOAK-3052' of https://github.com/cargosoft/keycloak into cargosoft-KEYCLOAK-3052 2016-06-17 13:55:55 +02:00
Stian Thorgersen 1a9fada964 KEYCLOAK-2753 Refactor authz changelog into separate authz-master.xml 2016-06-17 13:40:22 +02:00
Stian Thorgersen 9030edc04d KEYCLOAK-2753 Removed unused imports from PolicyAdapter 2016-06-17 13:40:22 +02:00
Stian Thorgersen 3c0f7e2ee2 Merge pull request #2617 from pedroigor/KEYCLOAK-2753
[KEYCLOAK-2753] - Fine-grained Authorization Services
2016-06-17 13:40:15 +02:00
Pedro Igor 086c29112a [KEYCLOAK-2753] - Fine-grained Authorization Services 2016-06-17 02:07:34 -03:00
mhajas 0df2525298 Fix ssl tests on EAP6 2016-06-16 11:56:31 +02:00
mhajas cdb40fce19 Add JS adapter tests 2016-06-16 11:43:06 +02:00
Ton Swieb af5ac7dd6b KEYCLOAK-3100 Rearrange SingleLogoutService and NameIDFormat 2016-06-15 21:16:34 +02:00
Dimitri Teleguin 524ad9728a correct resource URL 2016-06-14 21:07:36 +03:00
fkiss b50513a946 KEYCLOAK-2283 added email truststore test 2016-06-14 13:49:16 +02:00
Dmitry Telegin 3203842b58 Fix KEYCLOAK-3052 2016-06-14 12:32:43 +03:00
Stian Thorgersen 2d036b58a6 Merge pull request #2932 from stianst/master
KEYCLOAK-3050 - fix npe on deployment
2016-06-13 21:16:04 +02:00
Michaël van de Giessen 55910f5f70 KEYCLOAK-3050 - fix npe on deployment 2016-06-13 20:15:41 +02:00
Stian Thorgersen c1e202eaf9 Merge pull request #2931 from stianst/master
KEYCLOAK-3091 Change brute force to use userId
2016-06-13 18:02:32 +02:00
Stian Thorgersen e538394e60 KEYCLOAK-3091 Change brute force to use userId 2016-06-13 15:30:13 +02:00
Stian Thorgersen 46b17e6149 Merge pull request #2928 from mposolda/KEYCLOAK-3106
KEYCLOAK-3106 EventStoreProviderTest.query is failing in some environ…
2016-06-13 15:05:19 +02:00
mposolda e6b3586b87 KEYCLOAK-3106 EventStoreProviderTest.query is failing in some environments 2016-06-13 15:02:10 +02:00
Stian Thorgersen bdaba4c85a Merge pull request #2926 from mposolda/master
KEYCLOAK-3105 Can't access single realm with the admin user from mast…
2016-06-13 14:50:19 +02:00
mposolda 1510ac5eb4 KEYCLOAK-3105 Can't access single realm with the admin user from master realm 2016-06-13 12:09:11 +02:00
Некрасов Александр Сергеевич 1422d2962e KEYCLOAK-3102 Add russian localization 2016-06-10 15:54:19 +06:00
Marek Posolda 443772d5ec Merge pull request #2924 from mposolda/master
KEYCLOAK-2028: Add preemptive access token refresh support to servlet adapters
2016-06-09 21:51:15 +02:00
mposolda 72736e5e47 KEYCLOAK-2028 Add test for token-minimum-time-to-live adapter option 2016-06-09 19:22:15 +02:00
Ben Loy ec180db39f KEYCLOAK-2028: Add preemptive access token refresh support
Add a new keycloak.json property and mechanism to automatically
refresh access tokens if they are going to expire in less than a configurable
amount of time.
2016-06-09 19:22:15 +02:00
Marek Posolda f6d075fbe4 Merge pull request #2922 from mposolda/master
KEYCLOAK-2714 Remove the pre-liquibase workarounds
2016-06-08 15:54:36 +02:00
mposolda 5fc5bafbb6 KEYCLOAK-2714 Remove the pre-liquibase workarounds 2016-06-08 14:40:33 +02:00
Stian Thorgersen a189545f81 Merge pull request #2920 from thomasdarimont/issue/KEYCLOAK-3092-Increase-number-of-users-shown-in-UserListing
KEYCLOAK-3092: Show 25 users per page in user list by default
2016-06-08 13:21:13 +02:00
Stian Thorgersen 1c694b4795 Merge pull request #2921 from thomasdarimont/issue/KEYCLOAK-3054-fix-npe-on-unknown-protocol-adjustment
KEYCLOAK-3054: Use string format for log message
2016-06-08 07:08:05 +02:00
Stian Thorgersen 819c42dad2 Merge pull request #2918 from chameleon82/issue/KEYCLOAK-3089-email-subject-internationalization
KEYCLOAK-3089 Change email subject encoding to utf-8/base64
2016-06-08 07:07:37 +02:00
Некрасов Александр Сергеевич 7bdccc21b2 KEYCLOAK-3089 Change email subject encoding to utf-8 2016-06-08 09:10:39 +06:00
Thomas Darimont a9f461bfd1 KEYCLOAK-3054: Use string format for log message
Need to use log.debugf(..) to correctly resolve the %s placeholder.
2016-06-07 21:56:04 +02:00
Thomas Darimont 56a565f913 KEYCLOAK-3092: Show 20 users per page in user list by default
More sensible default for number of users shown per page in
the user listing of the admin console.
This is also recommended in the patternfly guidelines.

Prior to the PR only 5 users were shown per page.
2016-06-07 13:23:03 +02:00
Stian Thorgersen b6a76b1267 Merge pull request #2917 from thomasdarimont/issue/KEYCLOAK-3054-fix-npe-on-unknown-protocol
KEYCLOAK-3054: Fix potential NPE in RealmsResource
2016-06-07 13:09:54 +02:00
Thomas Darimont 67a63a806e KEYCLOAK-3054: Fix potential NPE in RealmsResource
Prior to PR .well-known Endpoint threw NPE with if unknown
Protocol was provided.
2016-06-07 08:29:23 +02:00
Stian Thorgersen 816b01860b Merge pull request #2912 from thomasdarimont/issue/KEYCLOAK-2891-fix-openidc-endpoint-label-alignment
KEYCLOAK-2891: Fix label alignment for OIDC Endpoint link.
2016-06-07 07:07:17 +02:00
Stian Thorgersen ce2f009e76 Merge pull request #2915 from pdrozd/KEYCLOAK-3082
KEYCLOAK-3082 - clear queue before event
2016-06-07 07:00:42 +02:00
Stian Thorgersen d5a44db2de Merge pull request #2914 from pdrozd/master
KEYCLOAK-3085 - Add module org.jboss.resteasy.resteasy-jaxrs to integ…
2016-06-07 07:00:11 +02:00
Некрасов Александр Сергеевич 5474496867 KEYCLOAK-3089 Change email subject encoding to utf-8/base64 2016-06-07 09:11:46 +06:00
Pavel Drozd 54d9943a3b KEYCLOAK-3085 - Add module org.jboss.resteasy.resteasy-jaxrs to integration-arquillian-testsuite-providers 2016-06-06 11:51:20 +02:00
Pavel Drozd 81de73df8e KEYCLOAK-3082 - clear queue before event 2016-06-06 11:46:39 +02:00
Thomas Darimont 51312ff7ff KEYCLOAK-2891: Fix label alignment for OIDC Endpoint link.
This probably happend during merge.
2016-06-06 09:55:31 +02:00
Bill Burke b2d8c6bca2 Merge pull request #2418 from schmeedy/master
Fix k_query_bearer_token endpoint in proxy
2016-06-05 11:20:08 -04:00
Bill Burke 4c9a0b45d4 Merge pull request #2229 from thomasdarimont/issue/KEYCLOAK-2489-script-based-authenticator-definitions
KEYCLOAK-2489 - Add support for Script-based AuthenticationExecution definitions.
2016-06-05 11:12:05 -04:00
Bill Burke b3f3449e39 Merge pull request #2810 from thomasdarimont/issue/KEYCLOAK-2974-handle-ModelException-in-UsersResource
KEYCLOAK-2974: Handle ModelException in UsersResource
2016-06-05 11:06:32 -04:00
Bill Burke a76a4730e3 Merge pull request #2884 from thomasdarimont/issue/KEYCLOAK-2891-link-to-oidc-endpoints-from-admin-console
KEYCLOAK-2891: Add link to OpenID Endpoint Configuration to realm details page.
2016-06-05 11:06:11 -04:00
Bill Burke dbeb3353f8 Merge pull request #2911 from thomasdarimont/issue/KEYCLOAK-3081-oidc-support-user-role-mapper
KEYCLOAK-3081: Add client mappers to map user roles to token
2016-06-05 11:03:47 -04:00
Thomas Darimont a2d1c8313d KEYCLOAK-3081: Add client mapper to map user roles to token
Introduced two new client protocol mappers to propagate assigned user client / realm roles to a JWT ID/Access Token.
Each protocol mapper supports to use a prefix string that is prepended to each role name.

 The client role protocol mapper can specify from which client the roles should be considered.
 Composite Roles are resolved recursively.

Background:
Some OpenID Connect integrations like mod_auth_openidc don't support analyzing deeply nested or encoded structures.
In those scenarios it is helpful to be able to define custom client protocol mappers that allow to propagate a users's roles as a flat structure
(e.g. comma separated list) as a top-level  (ID/Access) Token attribute that can easily be matched with a regex.

In order to differentiate between client specific roles and realm roles it is possible to configure
both separately to be able to use the same role names with different contexts rendered as separate token attributes.
2016-06-03 15:52:58 +02:00
Marek Posolda 193233899f Merge pull request #2910 from mposolda/master
KEYCLOAK-3074 AdminEventStoreProviderTest fixes
2016-06-03 11:33:22 +02:00
mposolda c42b8f81e3 KEYCLOAK-3074 Change the TestingResourceProvider to always both firstResults and maxResults in JPA criteria query 2016-06-03 10:31:32 +02:00
mposolda 13bf36ce49 KEYCLOAK-3074 Change the signature of TestingResourceProvider.getAdminEvents to use String instead of java.util.Date 2016-06-03 10:31:24 +02:00
Stian Thorgersen 31eee347d4 Merge pull request #2895 from mhajas/fixMissingPOM
KEYCLOAK-3051 Fix missing version in POM
2016-06-02 18:55:03 +02:00
Stian Thorgersen c37f1c24ee Merge pull request #2900 from tkyjovsk/performance-tests
Updates to the performance tests.
2016-06-02 18:54:47 +02:00
Stian Thorgersen fba78f3e2a Merge pull request #2908 from mstruk/KEYCLOAK-2879-a
KEYCLOAK-2879 UserResource
2016-06-02 18:53:53 +02:00
Marko Strukelj ec258c6515 KEYCLOAK-2879 UserResource 2016-06-02 15:23:18 +02:00
Stian Thorgersen 087f84bfff Merge pull request #2901 from mposolda/master
KEYCLOAK-3065 Remove 'provider' from realmCache in keycloak-server.js…
2016-06-02 14:58:16 +02:00
Stian Thorgersen 733a51b1ea Merge pull request #2903 from pedroigor/KEYCLOAK-3068
[KEYCLOAK-3068] - Setting XInclude to false
2016-06-02 07:59:17 +02:00
Stian Thorgersen 4141690857 Merge pull request #2905 from pedroigor/KEYCLOAK-3069
[KEYCLOAK-3069] - Adding back javax.xml.soap.api dependency
2016-06-02 07:58:35 +02:00
Pedro Igor 0ad86b3a53 [KEYCLOAK-3069] - Adding javax.xml.soap.api dependency 2016-06-01 16:57:06 -03:00
Pedro Igor a39907de76 [KEYCLOAK-3068] - Setting XInclude to false 2016-06-01 16:43:02 -03:00
mposolda fd2fc34386 KEYCLOAK-3065 Remove 'provider' from realmCache in keycloak-server.json to have 'enabled' switch working 2016-06-01 17:25:51 +02:00
Stian Thorgersen 93d3a0eb38 Merge pull request #2898 from stianst/master
KEYCLOAK-3066
2016-06-01 16:30:06 +02:00
Tomas Kyjovsky ef95510da4 Updates to the performance tests.
Conflicts:
	testsuite/integration-arquillian/tests/other/adapters/jboss/remote/pom.xml
	testsuite/integration-arquillian/tests/other/clean-start/pom.xml
2016-06-01 16:06:51 +02:00
Stian Thorgersen 8fab2f0718 KEYCLOAK-3066
Uploaded Realm Certificate is not validated
2016-06-01 15:12:21 +02:00
mhajas 6da8ca70dc Fix missing version in POM 2016-05-27 12:09:20 +02:00
Stian Thorgersen 2343e517c9 Merge pull request #2891 from pedroigor/KEYCLOAK-2894
[KEYCLOAK-2894] - Fixing saml signature validation
2016-05-26 16:57:13 +02:00
Pedro Igor 60f954a497 [KEYCLOAK-2894] - Fixing saml signature validation 2016-05-26 10:48:30 -03:00
Stian Thorgersen af30142097 Merge pull request #2886 from ssilvert/migrate-events
KEYCLOAK-2912 Migrate events package to new testsuite
2016-05-26 15:01:57 +02:00
Stian Thorgersen c5e287b7b1 Merge pull request #2885 from fernandomora/fix-base-theme-login
KEYCLOAK-3045 Fixes displaying message on login using base theme
2016-05-26 08:40:06 +02:00
Stian Thorgersen c206ae13db Merge pull request #2889 from mposolda/master
Admin events fixes and more tests
2016-05-26 08:29:51 +02:00
mposolda 882dbc3f25 KEYCLOAK-3006 Fix admin event inconsistencies related to roles (points 1,3,4,15,16 from JIRA) 2016-05-25 23:18:01 +02:00
mposolda 022be3aee5 KEYCLOAK-3006 Fix admin event inconsistencies (points 2,5-14 from JIRA) 2016-05-25 23:17:47 +02:00
Thomas Darimont 5f73c338d8 KEYCLOAK-2947: Include group representation for GroupMembership changes in AdminEvents
We now include the full group representation in AdminEvents
for Group Membership changes.
This enables EventListener to propagate potential role / attribute
chnages based on the removal / addition of the group.
2016-05-25 23:17:35 +02:00
mposolda f58936025f KEYCLOAK-3003 Support for admin events in AuthenticationManagementResource 2016-05-25 23:17:24 +02:00
Stan Silvert 1042a22cf7 KEYCLOAK-2912 Migrate events package to new testsuite 2016-05-25 15:22:17 -04:00
Fernando Mora 5148e69006 Fixes displaying message on login using base theme
Using base theme produces an error when login page tries to display a message.
The following properties that are not defined in base theme (only in keycloak theme) are being called without default_value operator "!"

* Steps to Reproduce:
1. Set `base` theme as `Login Theme`
2. Sign out
3. Try to sign in using and invalid username/password

* Expected behaviour:
  * Message `Invalid username or password.`is shown
* Actual behavior:
  * Bank page is shown and following stackatrace in logs:
```
15:58:19,575 ERROR [freemarker.runtime] (default task-9) Error executing FreeMarker template: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> properties.kcFeedbackErrorIcon  [in template "template.ftl" at line 67, column 76]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${properties.kcFeedbackErrorIcon}  [in template "template.ftl" in macro "registrationLayout" at line 67, column 74]
	- Reached through: @layout.registrationLayout displayInf...  [in template "login.ftl" at line 2, column 1]
----
	at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:131)
	at freemarker.core.EvalUtil.coerceModelToString(EvalUtil.java:355)
	at freemarker.core.Expression.evalAndCoerceToString(Expression.java:82)
	at freemarker.core.DollarVariable.accept(DollarVariable.java:41)
	at freemarker.core.Environment.visit(Environment.java:324)
	at freemarker.core.MixedContent.accept(MixedContent.java:54)
	at freemarker.core.Environment.visitByHiddingParent(Environment.java:345)
	at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48)
	at freemarker.core.Environment.visit(Environment.java:324)
	at freemarker.core.MixedContent.accept(MixedContent.java:54)
	at freemarker.core.Environment.visitByHiddingParent(Environment.java:345)
	at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48)
	at freemarker.core.Environment.visit(Environment.java:324)
	at freemarker.core.MixedContent.accept(MixedContent.java:54)
	at freemarker.core.Environment.visit(Environment.java:324)
	at freemarker.core.Macro$Context.runMacro(Macro.java:184)
	at freemarker.core.Environment.invoke(Environment.java:701)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:84)
	at freemarker.core.Environment.visit(Environment.java:324)
	at freemarker.core.MixedContent.accept(MixedContent.java:54)
	at freemarker.core.Environment.visit(Environment.java:324)
	at freemarker.core.Environment.process(Environment.java:302)
	at freemarker.template.Template.process(Template.java:325)
	at org.keycloak.theme.FreeMarkerUtil.processTemplate(FreeMarkerUtil.java:61)
	at org.keycloak.forms.login.freemarker.FreeMarkerLoginFormsProvider.createResponse(FreeMarkerLoginFormsProvider.java:314)
	at org.keycloak.forms.login.freemarker.FreeMarkerLoginFormsProvider.createLogin(FreeMarkerLoginFormsProvider.java:431)
	at org.keycloak.authentication.authenticators.browser.AbstractUsernameFormAuthenticator.invalidUser(AbstractUsernameFormAuthenticator.java:58)
	at org.keycloak.authentication.authenticators.browser.AbstractUsernameFormAuthenticator.invalidUser(AbstractUsernameFormAuthenticator.java:87)
	at org.keycloak.authentication.authenticators.browser.AbstractUsernameFormAuthenticator.validateUserAndPassword(AbstractUsernameFormAuthenticator.java:141)
	at org.keycloak.authentication.authenticators.browser.UsernamePasswordForm.validateForm(UsernamePasswordForm.java:56)
	at org.keycloak.authentication.authenticators.browser.UsernamePasswordForm.action(UsernamePasswordForm.java:49)
	at org.keycloak.authentication.DefaultAuthenticationFlow.processAction(DefaultAuthenticationFlow.java:84)
	at org.keycloak.authentication.DefaultAuthenticationFlow.processAction(DefaultAuthenticationFlow.java:75)
	at org.keycloak.authentication.AuthenticationProcessor.authenticationAction(AuthenticationProcessor.java:756)
	at org.keycloak.services.resources.LoginActionsService.processFlow(LoginActionsService.java:359)
	at org.keycloak.services.resources.LoginActionsService.processAuthentication(LoginActionsService.java:341)
	at org.keycloak.services.resources.LoginActionsService.authenticateForm(LoginActionsService.java:386)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)
	at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)
	at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:138)
	at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:101)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:395)
	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:202)
	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
	at org.keycloak.services.filters.KeycloakSessionServletFilter.doFilter(KeycloakSessionServletFilter.java:88)
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
	at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
	at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
	at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:284)
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263)
	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174)
	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:793)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
```
2016-05-25 18:38:11 +02:00
Thomas Darimont 08320890b1 KEYCLOAK-2891: Add link to OpenID Endpoint Configuration to realm details page
We now show a link to the OIDC Endpoints configuration in the realm
details page.
This makes it easier for users to find the OIDC endpoints.
2016-05-25 14:26:44 +02:00
Stian Thorgersen 5ed09acd94 Merge pull request #2881 from stianst/KEYCLOAK-3034
KEYCLOAK-3034 NullPointerException when log in via Twitter
2016-05-25 13:44:05 +02:00
Stian Thorgersen 4728729302 Merge pull request #2882 from stianst/master
KEYCLOAK-3029
2016-05-25 08:56:25 +02:00
Stian Thorgersen d016ea4116 KEYCLOAK-3029 2016-05-25 08:55:45 +02:00
Stian Thorgersen fa3a2aafec KEYCLOAK-3034 NullPointerException when log in via Twitter 2016-05-25 08:10:55 +02:00
Stian Thorgersen d85f9cb4e2 Merge pull request #2858 from thomasdarimont/issue/KEYCLOAK-3021-add-realm-display-name-to-otpauth-uri-label
KEYCLOAK-3021: Add Realm Display Name to the label part of the otpauth URI
2016-05-25 07:29:14 +02:00
Stian Thorgersen 9edec8e4a6 Merge pull request #2875 from abstractj/KEYCLOAK-3023
OAuthRedirectUriTest.testLocalhost fails on wildfly
2016-05-25 07:25:22 +02:00
Stian Thorgersen f12c54387c Merge pull request #2873 from vramik/KEYCLOAK-3024
KEYCLOAK-3024 support for smoke test - clean start domain mode
2016-05-25 07:24:14 +02:00
Stian Thorgersen d51a2cde2f Merge pull request #2859 from ssilvert/migrate-i18n
KEYCLOAK-2913 Migrate i18n package to new testsuite
2016-05-25 07:22:54 +02:00
Stian Thorgersen 39d2c3ad81 Merge pull request #2878 from stianst/master
KEYCLOAK-3020 Fix migration docs
2016-05-25 06:51:26 +02:00
Stian Thorgersen 6ee11a94b4 KEYCLOAK-3020 Fix migration docs 2016-05-25 06:50:52 +02:00
Bruno Oliveira b2850ec1d5 OAuthRedirectUriTest.testLocalhost fails on wildfly 2016-05-24 07:24:36 -03:00
Stan Silvert 8d56ab90ba KEYCLOAK-2913 Switch to use xpath for finding links instead of adding an
id.
2016-05-23 09:23:01 -04:00
Stian Thorgersen 3e4f5f40dc Merge pull request #2871 from stianst/KEYCLOAK-3008
KEYCLOAK-3008 Upload Realm Keys doesn't work
2016-05-23 14:01:22 +02:00
Stian Thorgersen 097c49149c Merge pull request #2867 from stianst/KEYCLOAK-3020
KEYCLOAK-3020
2016-05-23 13:59:13 +02:00
Vlasta Ramik a37d43714d support for smoke test - clean start domain mode 2016-05-23 13:29:05 +02:00
Stian Thorgersen ff20c530cd Merge pull request #2869 from stianst/KEYCLOAK-2851
KEYCLOAK-2851 InitialAccessTokenTest#createExpired fails occasionally
2016-05-23 12:04:23 +02:00
Stian Thorgersen e0ae98eb95 Merge pull request #2850 from wyvie/samltest
KEYCLOAK-3000: fixed the saml brokering tests
2016-05-23 11:23:27 +02:00
Stian Thorgersen 477c0872b0 KEYCLOAK-3020
Increase default password hashing intervals to 20K
2016-05-23 11:20:31 +02:00
Stian Thorgersen 27bdc996e7 KEYCLOAK-3008 Upload Realm Keys doesn't work 2016-05-23 10:35:23 +02:00
Stian Thorgersen e52f7c56a9 KEYCLOAK-2851 InitialAccessTokenTest#createExpired fails occasionally 2016-05-23 09:34:33 +02:00
Stian Thorgersen 74809b4132 Merge pull request #2864 from mhajas/fixOfflineServlets
KEYCLOAK-3025 Fix offline servlet adapter tests and refactoring
2016-05-23 08:41:42 +02:00
Stian Thorgersen bee9ba0c19 Merge pull request #2862 from mhajas/fixSSLOnWildfly-master
KEYCLOAK-3022 Fix ssl adapter tests on wildfly
2016-05-23 08:40:12 +02:00
Stian Thorgersen f4995410f8 Merge pull request #2856 from vmuzikar/KEYCLOAK-3013
KEYCLOAK-3013 Fix Upload Keystore tests in ClientAuthSignedJWTTest
2016-05-23 08:37:07 +02:00
mhajas 22a94100c8 Fix offline servlets and refactoring 2016-05-20 15:09:54 +02:00
mhajas 183feeb952 Fix ssl adapter tests on wildfly 2016-05-20 14:53:44 +02:00
Stan Silvert 049b0dda23 KEYCLOAK-2913 Migrate i18n package to new testsuite 2016-05-20 08:04:07 -04:00
Thomas Darimont 4bc64350b2 KEYCLOAK-3021: Add Realm Display Name to the label part of the otpauth URI.
Due to the  removal of the realm-displayname as a result of changes made for KEYCLOAK-2410
 the otpauth URI no longer included the realm display name as a hint for the user to which system an
 authenticator belongs to.

We now ensure that the realm display name is again part of the label component of the otpauth URI.
This enables a user to better distinguish between user accounts for different systems.
2016-05-20 13:59:19 +02:00
Vaclav Muzikar 7f474f574c KEYCLOAK-3013 Fix Upload Keystore tests in ClientAuthSignedJWTTest 2016-05-20 10:22:48 +02:00
Stian Thorgersen af7fd0ef61 Merge pull request #2855 from raehalme/KEYCLOAK-3016-master
KEYCLOAK-3016: BasicAuthRequestAuthenticator consumes HttpEntity on errors
2016-05-20 09:14:37 +02:00
Stian Thorgersen 7f3ccad4cc Merge pull request #2852 from abstractj/OAuthRedirectUriTest
OAuthRedirectUriTest migration
2016-05-20 09:13:01 +02:00
Stian Thorgersen 264c816f08 Merge pull request #2846 from ssilvert/migrate-composites
KEYCLOAK-2911 Migrate composites package to new testsuite.
2016-05-20 09:12:30 +02:00
Stian Thorgersen a6f8ff44a6 Merge pull request #2844 from vmuzikar/KEYCLOAK-3011
KEYCLOAK-3011 Fix WelcomePageTest
2016-05-20 09:10:52 +02:00
Stian Thorgersen c03c5d2fe9 Merge pull request #2843 from vramik/KEYCLOAK-3010
KEYCLOAK-3010 Add support for smoke test - clean start - standalone mode
2016-05-20 09:07:06 +02:00
Stian Thorgersen fcfe8582de Merge pull request #2838 from abstractj/KEYCLOAK-2908
KEYCLOAK-2908 - Migration of oidc package
2016-05-20 08:56:43 +02:00
Stian Thorgersen 63af03f11c Merge pull request #2833 from vmuzikar/master
KEYCLOAK-3004 Fix PKCS12 tests in ClientAuthSignedJWTTest
2016-05-20 08:55:15 +02:00
Stian Thorgersen fe841e560d Merge pull request #2832 from ssilvert/migrate-account
KEYCLOAK-2909 Migrate account package to new testsuite
2016-05-20 08:40:15 +02:00
wyvie 88583362ad KEYCLOAK-3000: fixed the saml brokering tests 2016-05-19 14:30:48 +02:00
Thomas Raehalme babe94c50d KEYCLOAK-3016: BasicAuthRequestAuthenticator now consumes HttpEntity also on errors. 2016-05-19 08:47:51 +03:00
Bruno Oliveira e7c98bd31b OAuthRedirectUriTest migration 2016-05-18 18:24:10 -03:00
Stan Silvert 771b4c5b6e KEYCLOAK-2911 Migrate composites package to new testsuite. 2016-05-17 10:23:47 -04:00
Vlasta Ramik ef716b8b94 Add support for smoke test - clean start - standalone mode 2016-05-17 13:55:24 +02:00
Vaclav Muzikar 6bcd72f7f2 KEYCLOAK-3011 Fix WelcomePageTest 2016-05-17 13:25:05 +02:00
Bruno Oliveira c434dc8dcc KEYCLOAK-2908 - Migration of oidc package 2016-05-14 00:50:23 -03:00
Marek Posolda 92db7b3618 Merge pull request #2831 from mposolda/master
KEYCLOAK-2881 Admin events testing
2016-05-13 13:43:47 +02:00
Vaclav Muzikar 62d6bf1dec KEYCLOAK-3004 Fix PKCS12 tests in ClientAuthSignedJWTTest
Use smaller keys to avoid illegal key size exception
2016-05-13 13:32:43 +02:00
mposolda fc9dbcf6cb KEYCLOAK-2881 Admin events testing 2016-05-13 11:29:08 +02:00
Stian Thorgersen 7193b54419 Merge pull request #2829 from stianst/master
Ignore KcSamlBrokerTest
2016-05-13 08:21:37 +02:00
Stian Thorgersen 686e48e9e2 Ignore KcSamlBrokerTest 2016-05-13 08:20:49 +02:00
Stian Thorgersen d8ea4bbc00 Merge pull request #2825 from thomasdarimont/issue/KEYCLOAK-2994-reword-login-messages-in-base-theme
KEYCLOAK-2994: Revise german translations for login pages in base theme
2016-05-13 07:53:32 +02:00
Stian Thorgersen 9467370a8f Merge pull request #2826 from vmuzikar/master
KEYCLOAK-2995 Revert changes from KEYCLOAK-2989 in JWTClientCredentialsProvider
2016-05-13 07:50:24 +02:00
Stian Thorgersen fff595b163 Merge pull request #2823 from mstruk/KEYCLOAK-2993
KEYCLOAK-2993 Fix integration-arquillian tests failing with -Pauth-server-wildfly
2016-05-13 07:32:21 +02:00
Stan Silvert a46982f8ec KEYCLOAK-2909 Migrate account package to new testsuite 2016-05-12 15:52:45 -04:00
Stian Thorgersen 4ddd2ae31d Merge pull request #2821 from mstruk/KEYCLOAK-2863
KEYCLOAK-2863 ClientAttributeCertificateResource
2016-05-12 16:50:40 +02:00
Stian Thorgersen 1c1afc9eaa Merge pull request #2818 from pdrozd/master
KEYCLOAK-2988 - Fix kerberos tests - able to run with Windows and RHIDM.
2016-05-12 16:43:42 +02:00
Vaclav Muzikar e6f0da99e6 KEYCLOAK-2995 Revert changes from KEYCLOAK-2989 in JWTClientCredentialsProvider 2016-05-12 10:45:45 +02:00
Thomas Darimont c59fdb4299 KEYCLOAK-2994: Revise german translations for login pages in base theme
Reworded some german translations and fixed some spelling errors.

This could also be applied to 1.9.x.
2016-05-12 10:41:09 +02:00
Marko Strukelj 0878109647 KEYCLOAK-2993 Fix integration-arquillian tests failing with -Pauth-server-wildfly 2016-05-12 09:39:25 +02:00
Stian Thorgersen 74ff101de4 Merge pull request #2819 from vmuzikar/master
KEYCLOAK-2989 Extend ClientAuthSignedJWTTest
2016-05-12 06:42:15 +02:00
Marko Strukelj ebc184bf94 KEYCLOAK-2863 ClientAttributeCertificateResource 2016-05-11 15:22:39 +02:00
Stian Thorgersen a09f38589f Merge pull request #2815 from abstractj/AuthorizationCodeTest
Migration of AuthorizationCodeTest
2016-05-11 14:09:13 +02:00
Bruno Oliveira 4664bb01d8 Migration of AuthorizationCodeTest 2016-05-11 06:21:12 -03:00
Stian Thorgersen c9e92bce60 Merge pull request #2813 from abstractj/OAuthGrantTest
OAuthGrantTest migration
2016-05-11 06:57:58 +02:00
Stian Thorgersen c04c047fbd Merge pull request #2781 from wyvie/brokering
KEYCLOAK-2971: Added basic oidc broker testing to the new testsuite
2016-05-11 06:57:36 +02:00
wyvie 9e857fe245 KEYCLOAK-2990: added test for single logout to broker testing (new testsuite) 2016-05-10 15:19:44 +02:00
Vaclav Muzikar 9ad584b34d KEYCLOAK-2989 Extend ClientAuthSignedJWTTest 2016-05-10 13:30:55 +02:00
Pavel Drozd 43ab806f8d KEYCLOAK-2988 - Fix kerberos tests - able to run with Windows and RHIDM. 2016-05-10 11:28:43 +02:00
wyvie 18a64103cd KEYCLOAK-2971: saml provider with signature in broker test 2016-05-10 11:07:19 +02:00
Bruno Oliveira bb6a7e357f OAuthGrantTest migration 2016-05-09 11:03:47 -03:00
Stian Thorgersen 0ec23fd40b Merge pull request #2812 from stianst/master
KEYCLOAK-2880 Refactor PermissionTest to not require Java8
2016-05-09 08:28:12 +02:00
Stian Thorgersen d43b230b93 KEYCLOAK-2880 Refactor PermissionTest to not require Java8 2016-05-09 07:25:03 +02:00
Marek Posolda 43b51d4a30 Merge pull request #2809 from mposolda/master
KEYCLOAK-2862 AuthenticationManagementResource tests
2016-05-06 21:29:35 +02:00
mposolda bea2678e85 KEYCLOAK-2862 AuthenticationManagementResource tests 2016-05-06 20:19:58 +02:00
Thomas Darimont 146a26e714 KEYCLOAK-2974: Handle ModelException in UsersResource
We now handle ModelExceptions thrown while creating and updating
a new User by rolling back the transaction and presenting
an error message with a HTTP 409 (conflict) code.
Previously only ModelDuplicateExceptions were handled and
ModelExceptions, e.g. due to a failed database operation
lead to a HTTP 500 server error.
2016-05-06 20:17:22 +02:00
Marek Posolda 016a19fcee Merge pull request #2807 from vramik/KEYCLOAK-2936
KEYCLOAK-2936 add app.server.java.home to karaf arquillian.xsl to be able to run fu…
2016-05-06 20:06:21 +02:00
Stian Thorgersen 9949101fba Merge pull request #2804 from stianst/master
Close admin client after test
2016-05-06 16:27:29 +02:00
wyvie 30f4f920c1 KEYCLOAK-2971: saml provider without signature in broker test 2016-05-06 16:04:39 +02:00
Vlasta Ramik 22200d857c add app.server.java.home to karaf arquillian.xsl to be able to run fuse tests on jdk7, minor test fix 2016-05-06 15:09:59 +02:00
Stian Thorgersen 713909fac9 Close admin client after test 2016-05-06 15:01:32 +02:00
Stian Thorgersen f4d751c839 Merge pull request #2786 from stianst/master
KEYCLOAK-2865 Extend coverage of client admin endpoints
2016-05-06 11:13:15 +02:00
Marek Posolda 411b71bcbb Merge pull request #2768 from vramik/KEYCLOAK-2936
KEYCLOAK-2936 Add app server module and test module for testing fuse6.3, ...
2016-05-06 08:37:34 +02:00
Stian Thorgersen 0ca117b8e9 KEYCLOAK-2865 Extend coverage of client admin endpoints 2016-05-06 08:08:52 +02:00
Marek Posolda ce450e3806 Merge pull request #2801 from mposolda/master
KEYCLOAK-2805 KEYCLOAK-2777 Fuse 6.3 support
2016-05-06 08:00:14 +02:00
Stian Thorgersen f2c1c26385 Merge pull request #2802 from dbarentine/master
KEYCLOAK-2973 Persist federated identity on token update
2016-05-06 07:07:40 +02:00
Stian Thorgersen dbd906b330 Merge pull request #2798 from abstractj/OAuthDance
Migration of OAuthDanceClientSessionExtensionTest
2016-05-06 07:06:22 +02:00
Stian Thorgersen b7e70ea7e3 Merge pull request #2796 from abstractj/RefreshTokenTest
Refresh token test
2016-05-06 07:05:36 +02:00
Stian Thorgersen 0c5d1c7090 Merge pull request #2794 from mstruk/KEYCLOAK-2869
KEYCLOAK-2869 IdentityProvidersResource/IdentityProviderResource
2016-05-06 07:03:52 +02:00
Stian Thorgersen 1d87d1cce1 Merge pull request #2792 from ssilvert/migrate-forms
KEYCLOAK-2906 Migrate forms package to new testsuite
2016-05-06 07:00:10 +02:00
Stian Thorgersen 39019eed10 Merge pull request #2791 from mhajas/SAML-stability
KEYCLOAK-2959 KEYCLOAK-2459 Refactor and improve stability of SAML adapter tests
2016-05-06 06:59:03 +02:00
Stian Thorgersen ddc9766ec9 Merge pull request #2789 from stianst/KEYCLOAK-2549
KEYCLOAK-2549 Re-create master admin client if master realm is overwr…
2016-05-06 06:58:19 +02:00
Dane Barentine 2f4c2c20f9 KEYCLOAK-2973 Persist federated identity on token update 2016-05-05 14:51:17 -07:00
mposolda 741e10060e KEYCLOAK-2805 Minor changes - cleanup and docs 2016-05-05 22:55:53 +02:00
Bruno Oliveira 2a60f65229 Migration of OAuthDanceClientSessionExtensionTest 2016-05-05 15:29:51 -03:00
Bruno Oliveira a5687e4660 Migration of RefreshTokenTest 2016-05-05 15:20:52 -03:00
Marko Strukelj f337085ed0 KEYCLOAK-2869 IdentityProvidersResource/IdentityProviderResource 2016-05-05 17:04:45 +02:00
Bruno Oliveira 8418fec113 Replace by ClientManager and make the code less verbose 2016-05-05 11:53:17 -03:00
Paolo Antinori 534a7b6e59 KEYCLOAK-2777 - Examples Fuse. Correct Parent pom reference 2016-05-05 15:23:45 +02:00
Paolo Antinori 87a7879e71 KEYCLOAK-2777 - Added PathBasedKeycloakConfigResolver for OSGi + examples 2016-05-05 15:23:35 +02:00
Paolo Antinori d35f8c1905 KEYCLOAK-2805 - Update docs for JBoss Fuse 6.3 2016-05-05 15:22:14 +02:00
Paolo Antinori 53799297b3 KEYCLOAK-2805 - Moved cxf.version up to the main pom 2016-05-05 15:22:03 +02:00
Paolo Antinori f5f36545f3 KEYCLOAK-2805 - Support for JBoss Fuse 6.3
Upgrade of CXF, Jetty and Pax-Web required to rewrite part of the integration.
2016-05-05 15:21:51 +02:00
mhajas 40bf5fb5d2 Refactor and improve stability of SAML tests 2016-05-05 12:31:55 +02:00
Marek Posolda 49dc5363bb Merge pull request #2783 from mposolda/master
Easier MariaDB support in tests
2016-05-05 10:04:38 +02:00
Stian Thorgersen 1cc4cc30a6 KEYCLOAK-2549 Re-create master admin client if master realm is overwritten on import 2016-05-05 07:19:32 +02:00
Stian Thorgersen 8799405673 Merge pull request #2784 from abstractj/RHSSO-121
RHSSO-121: Offline Tokens
2016-05-05 06:35:58 +02:00
Bruno Oliveira 9a3bea7062 RHSSO-121: Offline Tokens 2016-05-04 22:48:59 -03:00
Stan Silvert c392f6659e KEYCLOAK-2906 Migrate forms package to new testsuite 2016-05-04 18:46:38 -04:00
mposolda 6a75aec6d8 Easier MariaDB support in tests 2016-05-04 23:08:30 +02:00
wyvie a867a1646a KEYCLOAK-2971: Added basic oidc broker testing to the new testsuite 2016-05-04 17:29:56 +02:00
Stian Thorgersen 5abe06a2b7 Merge pull request #2778 from stianst/master
KEYCLOAK-2880 Permissions tests for admin endpoints
2016-05-04 16:54:25 +02:00
Stian Thorgersen aba69e0628 Suppress log output from resteasy during tests 2016-05-04 13:57:28 +02:00
Stian Thorgersen 2355db57da KEYCLOAK-2880 Permissions tests for admin endpoints 2016-05-04 08:25:05 +02:00
Stian Thorgersen 7796bf3510 Merge pull request #2776 from mhajas/jsconsole-stability
KEYCLOAK-2916 Improve stability of JS-console
2016-05-04 06:35:11 +02:00
mhajas 09d1c8bafc Improve stability of JS-console tests 2016-05-03 15:06:10 +02:00
Stian Thorgersen dcc9e30e8d Merge pull request #2767 from stianst/master
Moved ClientRedirectTest to new testsuite
2016-05-03 05:43:13 +02:00
Vlasta Ramik 01a96b62dc Add app server module and test module for testing fuse6.3, rename feature in fuse6.2 tests 2016-04-28 14:50:10 +02:00
Stian Thorgersen a206a6d16d Merge pull request #2765 from stianst/master
KEYCLOAK-2932 KEYCLOAK-2934
2016-04-28 14:29:22 +02:00
Stian Thorgersen 19c29387fa Moved ClientRedirectTest to new testsuite 2016-04-28 13:42:18 +02:00
Stian Thorgersen 3565706379 Merge pull request #2763 from mposolda/master
KEYCLOAK-2903 Document proxy-address-forwarding with reverse proxy/lo…
2016-04-28 13:11:19 +02:00
Stian Thorgersen 6ec19d0b63 KEYCLOAK-2932 KEYCLOAK-2934 2016-04-28 13:07:15 +02:00
mposolda 71247538ee KEYCLOAK-2903 Document proxy-address-forwarding with reverse proxy/loadbalancer setup 2016-04-28 13:02:39 +02:00
Stian Thorgersen b491a10aa9 Merge pull request #2761 from stianst/master
KEYCLOAK-2933
2016-04-28 13:01:54 +02:00
Stian Thorgersen 20dac1d885 KEYCLOAK-2933
RealmTest is failing on WildFly
2016-04-28 12:22:41 +02:00
Stian Thorgersen 1de3d143aa Merge pull request #2759 from vramik/KEYCLOAK-2928
KEYCLOAK-2928 Enabled/edited CustomAuthFlowCookieTest
2016-04-28 11:03:31 +02:00
Vlasta Ramik 0b875d4688 Enabled/edited CustomAuthFlowCookieTest 2016-04-28 10:22:54 +02:00
Stian Thorgersen acba6cd210 Merge pull request #2748 from thomasdarimont/issue/KEYCLOAK-2924-AdminEvents-on-group-membership-changes
KEYCLOAK-2924: Fire AdminEvents on user group membership changes.
2016-04-28 08:37:46 +02:00
Stian Thorgersen 231e049771 Merge pull request #2753 from ssilvert/migrate-actions
KEYCLOAK-2905 Migrate actions package from old testsuite
2016-04-28 06:43:55 +02:00
Bill Burke 43e88b4d73 Merge pull request #2755 from patriot1burke/master
add bind addresses to domain template
2016-04-27 22:09:07 -04:00
Bill Burke c52da46e54 add bind addresses to domain template 2016-04-27 22:05:01 -04:00
Stan Silvert 29d6832882 KEYCLOAK-2905 Migrate actions package from old testsuite 2016-04-27 14:09:46 -04:00
Bill Burke 15f4c764bc Merge pull request #2752 from patriot1burke/master
KEYCLOAK-2922 KEYCLOAK-2920
2016-04-27 11:37:20 -04:00
Bill Burke 35a9527407 Merge pull request #2750 from stianst/master
KEYCLOAK-2927 Rename add-user script to add-user-keycloak
2016-04-27 11:05:26 -04:00
Bill Burke cd8ba1653d KEYCLOAK-2922 KEYCLOAK-2920 2016-04-27 10:36:36 -04:00
Stian Thorgersen 8d9047c338 KEYCLOAK-2927 Rename add-user script to add-user-keycloak 2016-04-27 16:18:42 +02:00
Thomas Darimont c8d47926b8 KEYCLOAK-2489 - Add support for Script-based AuthenticationExecution definitions.
This is a POC for script based authenticator support.
Introduced a ScriptBasedAuthenticator that is bootstraped via a
ScriptBasedAuthenticatorFactory can be execute a configured script
against a provided execution context.
Added an alias property to the AuthFlowExecutionRepresentation in order
to be able to differentiate multiple instances of an Authenticator
within the same AuthFlow.

For convenience editing the AngularJS bindings for the ACE editor were
added for fancy script editing - this needs to be cut down a bit wrt to
themes and supported scripts - e.g. we probably don't expect users to write
authenticator scripts in Cobol...
Removed currently not needed ACE sytax highlighting and themes.

Scripting is now available to all keycloak components that have access to the KeycloakSession.
Introduced new Scripting SPI for configurable scripting providers.
2016-04-27 14:37:13 +02:00
Stian Thorgersen 83370f0666 Merge pull request #2737 from mhajas/adapter-ssl-PR
KEYCLOAK-2915 Fix adapter ssl tests on EAP/EAP6
2016-04-27 13:50:08 +02:00
Stian Thorgersen d77c1e616f Merge pull request #2734 from vramik/KEYCLOAK-2889
KEYCLOAK-2889 Fix adapter tests for Karaf/Fuse
2016-04-27 13:49:27 +02:00
Stian Thorgersen ae56bb30c9 Merge pull request #2747 from stianst/KEYCLOAK-2871-master
KEYCLOAK-2871 Extend coverage on RealmAdminResource
2016-04-27 13:38:25 +02:00
Thomas Darimont 27ef919d07 KEYCLOAK-2924: Fire AdminEvents on user group membership changes.
We now fire AdminEvents if a user joins or leaves a group.
This information can be used to deduce potential role changes
in custom event listeners.
2016-04-27 11:17:23 +02:00
Marek Posolda dcb6cedfb7 Merge pull request #2743 from mposolda/master-loadbalancer
KEYCLOAK-2903 Fix WelcomeResource to not allow requests forwarded fro…
2016-04-27 11:10:45 +02:00
Stian Thorgersen 95724e36f3 KEYCLOAK-2871 Extend coverage on RealmAdminResource 2016-04-27 10:29:24 +02:00
Marek Posolda ce58f00caa Merge pull request #2745 from mposolda/master
KEYCLOAK-2898 Fix GroupMappersTest on wildfly. Clearing AssertEvents …
2016-04-26 18:01:25 +02:00
mposolda 225523fee0 KEYCLOAK-2898 Fix GroupMappersTest on wildfly. Clearing AssertEvents events queue before test instead of after 2016-04-26 16:10:40 +02:00
mposolda c7335fa242 KEYCLOAK-2903 Fix WelcomeResource to not allow requests forwarded from proxy/loadbalancer 2016-04-26 12:03:43 +02:00
mhajas 57ccbb7f49 Fix adapter ssl tests on EAP/EAP6 2016-04-26 09:15:12 +02:00
Stian Thorgersen 4433a058a4 Merge pull request #2726 from abstractj/RHSSO-106-master
RHSSO-106: Migration of ResourceOwnerPasswordCredentialsGrantTest
2016-04-25 19:46:12 +02:00
Vlasta Ramik bf76be21c7 Fix adapter tests for Karaf/Fuse 2016-04-25 15:29:41 +02:00
Bruno Oliveira bbe7ff1dce RHSSO-106: Migration of ResourceOwnerPasswordCredentialsGrantTest 2016-04-25 10:15:27 -03:00
Marek Posolda 5f16f0ede8 Merge pull request #2732 from mposolda/master
KEYCLOAK-2900
2016-04-25 15:00:09 +02:00
Stian Thorgersen 7dd2b3d7be Merge pull request #2730 from abstractj/RHSSO-130
RHSSO-130: AccessTokenTest migration
2016-04-25 13:43:03 +02:00
Stian Thorgersen 320a9da585 Merge pull request #2711 from ssilvert/migrate-LoginTest
Migrate LoginTest
2016-04-25 13:40:51 +02:00
mposolda fa8b272e76 KEYCLOAK-2900 2016-04-25 13:20:29 +02:00
Marek Posolda 6c3d31dd4c Merge pull request #2728 from mstruk/KEYCLOAK-2899
KEYCLOAK-2899 Tests fail with -Pauth-server-wildfly due to missing logging dependecy
2016-04-22 21:37:48 +02:00
Bruno Oliveira 1cc4ca2e71 RHSSO-130: AccessTokenTest migration 2016-04-22 16:30:57 -03:00
Marko Strukelj eea19e7850 KEYCLOAK-2899 Tests fail with -Pauth-server-wildfly due to missing logging dependecy 2016-04-22 19:48:13 +02:00
Marek Posolda 2047363e86 Merge pull request #2722 from mstruk/KEYCLOAK-2893
KEYCLOAK-2893 Fix TokenIntrospectionTest
2016-04-22 15:16:17 +02:00
Marek Posolda 0d88c9050a Merge pull request #2718 from abstractj/RHSSO-108-client-auth-signed
Rhsso 108 client auth signed
2016-04-22 15:07:10 +02:00
Marek Posolda 236fcd66d4 Merge pull request #2721 from mposolda/master
KEYCLOAK-2878 UserFederation admin tests
2016-04-22 15:00:44 +02:00
Marko Strukelj 1a5517f986 KEYCLOAK-2893 Fix TokenIntrospectionTest 2016-04-22 14:23:59 +02:00
mposolda 01cc0d0e1d KEYCLOAK-2878 Added UserFederationLdapConnectionTest 2016-04-22 14:03:51 +02:00
mposolda e0aedfb93d KEYCLOAK-2878 UserFederation mapper testing 2016-04-22 14:03:42 +02:00
Marek Posolda 0797cf6db7 Merge pull request #2716 from mstruk/KEYCLOAK-2893
KEYCLOAK-2893 Fix TokenIntrospectionTest
2016-04-22 13:42:54 +02:00
Bruno Oliveira ec77970021 Inclusion of try/finally suggested by Stian 2016-04-22 08:29:32 -03:00
Bruno Oliveira 30f34173c5 RHSSO-108: Migration of ClientAuthSignedJWTTest 2016-04-22 08:29:28 -03:00
Marko Strukelj 0e52781a1f KEYCLOAK-2893 Fix TokenIntrospectionTest 2016-04-22 11:18:09 +02:00
Marek Posolda 10bda7c96d Merge pull request #2715 from mposolda/master
UserFederation admin testing
2016-04-22 00:43:37 +02:00
mposolda afcdce6b71 Simplified calling of AuthenticationManagementResource.getExecutions() 2016-04-21 23:11:25 +02:00
mposolda f6a718f10a KEYCLOAK-2878 Testing of UserFederation admin REST endpoints 2016-04-21 23:11:14 +02:00
Stan Silvert 9335ab6b22 Migrate LoginTest 2016-04-21 09:37:54 -04:00
Stian Thorgersen 631dcd93e6 Merge pull request #2707 from stianst/KEYCLOAK-2866
KEYCLOAK-2866 KEYCLOAK-2874 Test role mapping resource
2016-04-21 14:58:15 +02:00
Stian Thorgersen 756cc0dca0 KEYCLOAK-2866 KEYCLOAK-2874 Test role mapping resource 2016-04-21 14:21:27 +02:00
Stian Thorgersen 9fcef2c80f Merge pull request #2705 from stianst/KEYCLOAK-2868
KEYCLOAK-2868 Extend coverage of GroupResource tests
2016-04-21 13:38:14 +02:00
Stian Thorgersen 19b05ad62f Merge pull request #2704 from stianst/KEYCLOAK-2838
KEYCLOAK-2838: Add cookie storage fallback to keycloak.js
2016-04-21 13:37:52 +02:00
Stian Thorgersen 578b5e2b59 KEYCLOAK-2868 Extend coverage of GroupResource tests 2016-04-21 11:52:20 +02:00
Stian Thorgersen 6776f5c341 Merge pull request #2701 from stianst/KEYCLOAK-2873
KEYCLOAK-2873 / KEYCLOAK-2875 Test RoleContainerResource
2016-04-21 11:47:50 +02:00
Maximilian Szengel c3c3b90fb9 KEYCLOAK-2838: Add cookie storage fallback to keycloak.js 2016-04-21 11:07:41 +02:00
Stian Thorgersen 34d5e85316 KEYCLOAK-2873 / KEYCLOAK-2875 Test RoleContainerResource 2016-04-21 10:58:46 +02:00
Stian Thorgersen d0a9e45826 Merge pull request #2700 from stianst/KEYCLOAK-2864
KEYCLOAK-2864 Test InitialAccessTokenResource
2016-04-21 10:27:11 +02:00
Stian Thorgersen 23b4b4283b KEYCLOAK-2864 Test InitialAccessTokenResource 2016-04-21 09:44:29 +02:00
Stian Thorgersen 673253a539 Merge pull request #2697 from stianst/KEYCLOAK-2872
KEYCLOAK-2872 Test RoleByIdResource
2016-04-21 09:31:43 +02:00
Stian Thorgersen 4f5b71d81a KEYCLOAK-2872 Test RoleByIdResource 2016-04-21 07:09:25 +02:00
Stian Thorgersen 70ae0b2317 Merge pull request #2694 from abstractj/RHSSO-108
RHSSO-108: Client signed token authentication (master)
2016-04-21 06:19:25 +02:00
Stian Thorgersen d91a9df177 Merge pull request #2696 from stianst/master
Ignore failing CustomAuthFlowCookieTest
2016-04-21 06:07:33 +02:00
Stian Thorgersen 27fd5f395f Ignore failing CustomAuthFlowCookieTest 2016-04-21 06:05:45 +02:00
Bruno Oliveira 2f3b5e9b88 RHSSO-108: Client signed token authentication 2016-04-20 20:47:50 -03:00
Stian Thorgersen 9edc2000e7 Merge pull request #2690 from stianst/role-assertevents
Made AssertEvents work with @Rule
2016-04-20 21:44:47 +02:00
Stian Thorgersen b6257e66b3 Merge pull request #2679 from pedroigor/KEYCLOAK-2835
[KEYCLOAK-2835] - Adding SOAP binding to the list of supported SingleSignOnService.
2016-04-20 20:13:49 +02:00
Stian Thorgersen 890af8da52 Made AssertEvents work with @Rule 2016-04-20 20:09:09 +02:00
Stian Thorgersen 974906d37f Merge pull request #2688 from ssilvert/master
Rename oauthClient to oauth in AbstractKeycloakTst
2016-04-20 19:40:50 +02:00
Stian Thorgersen f2f2158154 Merge pull request #2687 from mposolda/master
KEYCLOAK-2842 Not possible to add new execution under registration flow
2016-04-20 19:40:34 +02:00
Stian Thorgersen ea99a05ffe Merge pull request #2684 from mstruk/assert-events-refactor
KEYCLOAK-2755 Refactor testsuite events provider
2016-04-20 19:36:57 +02:00
Stian Thorgersen 0cffa5740d Merge pull request #2683 from stianst/KEYCLOAK-2861-master
KEYCLOAK-2861 Test AttackDetectionResource
2016-04-20 19:36:11 +02:00
mposolda a341889d2c KEYCLOAK-2842 Not possible to add new execution under registration flow 2016-04-20 18:39:11 +02:00
Stan Silvert 9007f8b19c Rename oauthClient to oauth in AbstractKeycloakTst 2016-04-20 12:37:38 -04:00
Marko Strukelj b8832d2d71 KEYCLOAK-2755 Refactor testsuite events provider 2016-04-20 16:43:20 +02:00
Stian Thorgersen 86dfcecef6 KEYCLOAK-2861 Test AttackDetectionResource 2016-04-20 16:21:57 +02:00
Stian Thorgersen 8efbdce810 Merge pull request #2680 from stianst/KEYCLOAK-2850
Moved admin tests from endpoint package back to admin package
2016-04-20 15:35:49 +02:00
Stian Thorgersen 1667ada111 Moved admin tests from endpoint package back to admin package 2016-04-20 14:56:07 +02:00
Stian Thorgersen b6ed681402 Merge pull request #2677 from stianst/KEYCLOAK-2850
KEYCLOAK-2850 Migrated ImpersonationTest and added builders
2016-04-20 14:48:05 +02:00
Marek Posolda 2dcf96eaad Merge pull request #2675 from mposolda/master
Client template fixes
2016-04-20 14:13:55 +02:00
Stian Thorgersen b8b40e75ef KEYCLOAK-2850 Migrated ImpersonationTest and added builders 2016-04-20 13:52:08 +02:00
Pedro Igor 81e4f4b351 [KEYCLOAK-2835] - Adding SOAP binding to the list of supported SingleSignOnService. 2016-04-20 08:48:59 -03:00
mposolda afc8179cf8 KEYCLOAK-2846 export/import of clientTemplate scopes 2016-04-20 13:30:01 +02:00
mposolda 919a3791ea KEYCLOAK-2844 Unexpected error when trying to remove clientTemplate in use 2016-04-20 13:25:13 +02:00
Stian Thorgersen e490a6e3bd Merge pull request #2673 from stianst/master
KEYCLOAK-2850 Migrated ConcurrencyTest
2016-04-20 12:49:48 +02:00
Stian Thorgersen eab548d7f0 Merge pull request #2671 from stianst/KEYCLOAK-2491
KEYCLOAK-2491 Fix permissions in admin console to match permissions i…
2016-04-20 12:49:28 +02:00
Stian Thorgersen 37256b6b8f KEYCLOAK-2850 Migrated ConcurrencyTest 2016-04-20 10:07:16 +02:00
Stian Thorgersen 04d76b0052 KEYCLOAK-2491 Fix permissions in admin console to match permissions in admin endpoints 2016-04-20 09:57:57 +02:00
Marek Posolda ecd3d2187f Merge pull request #2670 from mposolda/master
KEYCLOAK-2850 Migrate RealmTest from old testsuite to new
2016-04-20 09:33:47 +02:00
Stian Thorgersen b3d40c6f85 Merge pull request #2667 from stianst/KEYCLOAK-2832
KEYCLOAK-2832
2016-04-20 09:10:49 +02:00
mposolda d415bdb3d2 Remove AbstractAdminTest.assertNames and related methods (as they are available in Assert class) 2016-04-20 08:22:42 +02:00
mposolda 060527ac67 KEYCLOAK-2850 migrate RealmTest from old testsuite to new 2016-04-20 08:22:32 +02:00
Stian Thorgersen f71273a1f9 KEYCLOAK-2832
Authentication failure logs at ERROR level
2016-04-20 07:32:07 +02:00
Stian Thorgersen 656161ff61 Merge pull request #2651 from mhajas/truststore
KEYCLOAK-2841 Trustore support in adapter tests
2016-04-20 06:57:01 +02:00
Marek Posolda 2044e47d03 Merge pull request #2666 from mposolda/master
KEYCLOAK-2852 Moved JAAS classes back to package org.keycloak.adapter…
2016-04-19 23:00:02 +02:00
mposolda 6baa2228e7 KEYCLOAK-2852 Moved JAAS classes back to package org.keycloak.adapters.jaas 2016-04-19 22:19:10 +02:00
Stian Thorgersen d9f82affb0 Merge pull request #2664 from stianst/master
Migrate pages from old testsuite, make OAuthClient injectable
2016-04-19 22:08:47 +02:00
Stian Thorgersen d2e3389414 Removed duplicated ClientInitialAccessTest 2016-04-19 20:34:59 +02:00
Stian Thorgersen 7cf77e1bb4 Merge pull request #2662 from vmuzikar/master
KEYCLOAK-2854 Fix Client Settings Console UI test
2016-04-19 20:32:09 +02:00
Stian Thorgersen da2ad8f645 Merge pull request #2661 from mmerdes/patch-1
Update spring-boot-adapter.xml
2016-04-19 20:31:32 +02:00
Stian Thorgersen f4a41071ea Merge pull request #2652 from abstractj/apiutil-removal
Removal of duplicated API Util
2016-04-19 20:31:15 +02:00
Stian Thorgersen a44add29b4 Merge pull request #2646 from tkyjovsk/performance-tests
Added module 'adapters/jboss/remote' with performance tests.
2016-04-19 20:30:26 +02:00
Stian Thorgersen de8ffae427 Migrate pages from old testsuite, make OAuthClient injectable 2016-04-19 20:16:55 +02:00
Vaclav Muzikar 3d370f9d11 KEYCLOAK-2854 Fix Client Settings Console UI test 2016-04-19 17:54:58 +02:00
Matthias Merdes 257ccbb939 Update spring-boot-adapter.xml
fixed typo in spring boot example configuration
2016-04-19 17:02:37 +02:00
Marek Posolda bead313e27 Merge pull request #2658 from stianst/KEYCLOAK-2850
KEYCLOAK-2850 Migrate admin endpoint identity provider test
2016-04-19 16:24:52 +02:00
Marek Posolda 0ad4041fd9 Merge pull request #2656 from mposolda/master
KEYCLOAK-2849 Admin endpoint tests for client templates
2016-04-19 15:22:11 +02:00
Bruno Oliveira 8d1108ba1b Removal of duplicated API Util 2016-04-19 10:21:17 -03:00
mposolda fb5e5d5cb6 KEYCLOAK-2849 Admin endpoint tests for client templates 2016-04-19 14:37:38 +02:00
Stian Thorgersen 899c9f48e9 KEYCLOAK-2850 Migrate admin endpoint identity provider test 2016-04-19 14:27:16 +02:00
Stian Thorgersen 2d36d48356 Merge pull request #2654 from stianst/KEYCLOAK-2828
KEYCLOAK-2828
2016-04-19 13:44:14 +02:00
Stian Thorgersen 5606160e70 KEYCLOAK-2828 Refactor contribution and add tests 2016-04-19 13:09:00 +02:00
Thomas Raehalme cd1094c3ad KEYCLOAK-2828: LoginStatusIframeEndpoint now sets the P3P header.
IE requires a P3P header to be present in <iframe /> response. Otherwise
cookies are forbidden. The value of the header does not seem to matter.
2016-04-19 10:24:28 +02:00
Marek Posolda 069d362778 Merge pull request #2649 from pdrozd/KEYCLOAK-2839
KEYCLOAK-2839 - kerberos tests migration.
2016-04-18 20:05:58 +02:00
mhajas 77c37ccaf6 Trustore support in adapter tests + fix tests 2016-04-18 16:14:10 +02:00
Pavel Drozd c52c2eb471 KEYCLOAK-2839 - kerberos tests migration. 2016-04-18 14:37:33 +02:00
Tomas Kyjovsky 92d9808cc0 Added module 'adapters/jboss/remote' with performance tests. 2016-04-18 14:10:36 +02:00
Bill Burke 8830f87a76 Merge pull request #2644 from patriot1burke/master
KEYCLOAK-2740
2016-04-15 17:42:26 -04:00
Bill Burke 600f429abb KEYCLOAK-2740 2016-04-15 16:49:06 -04:00
Bill Burke fdcc2d32f6 Merge pull request #2607 from vramik/KEYCLOAK-2757
KEYCLOAK-2757 Add tests to cover custom auth flows
2016-04-15 16:28:05 -04:00
Bill Burke 9083bbf669 Merge pull request #2643 from patriot1burke/master
KEYCLOAK-2584
2016-04-15 16:27:39 -04:00
Bill Burke 58b5c3d75d KEYCLOAK-2584 2016-04-15 15:15:04 -04:00
Stian Thorgersen 44c3a56a21 Merge pull request #2635 from ssilvert/migrate-oauth-client-2
KEYCLOAK-2743: Port OAuthClient to new testsuite
2016-04-15 08:41:46 +02:00
Stan Silvert 6805b991e1 Move test under 'endpoint' package. 2016-04-14 19:46:15 -04:00
Stan Silvert e25a0d3cf1 Create TestRealmKeycloakTest as common base class for tests that need
testrealm.json.  Rename admin packaget to endpoint.  Rename legacy package
to match old testsuite.
test suite.
2016-04-14 15:39:32 -04:00
Stan Silvert ca72a3bd70 KEYCLOAK-2743: Port OAuthClient to new testsuite 2016-04-14 15:39:03 -04:00
Stian Thorgersen 3f6377b31f Merge pull request #2634 from stianst/master
KEYCLOAK-2827 ModuleLoadError: org.keycloak.keycloak-core-public:main
2016-04-14 15:30:05 +02:00
Stian Thorgersen 0008d50dfa KEYCLOAK-2827 ModuleLoadError: org.keycloak.keycloak-core-public:main 2016-04-14 15:23:21 +02:00
Stian Thorgersen a723dde180 Merge pull request #2632 from stianst/master
KEYCLOAK-2825 KEYCLOAK-2826 Remove private for org.keycloak.keycloak-…
2016-04-14 15:21:36 +02:00
Stian Thorgersen 9ef29b6a3e KEYCLOAK-2825 KEYCLOAK-2826 Remove private for org.keycloak.keycloak-adapter-core and org.keycloak.keycloak-adapter-spi modules 2016-04-14 14:41:40 +02:00
Marek Posolda 2a5fd36b6c Merge pull request #2630 from mposolda/master
KEYCLOAK-2823 Password policy 'hashAlgorithm' value not correctly sho…
2016-04-14 13:56:03 +02:00
Stian Thorgersen 2d9bb402fc Merge pull request #2628 from ilanddev/master
KEYCLOAK-2821 Add adapter option
2016-04-14 13:23:11 +02:00
mposolda 44ea920f92 KEYCLOAK-2823 Password policy 'hashAlgorithm' value not correctly shown in admin console 2016-04-14 13:16:14 +02:00
Jonathan Masmejean b4ce19c231 fix formating issue. 2016-04-14 12:00:41 +02:00
Jonathan Masmejean 93b54ce13a KEYCLOAK-2821 : Add the adapter option
You just can add an 'adapter' option to the kc.init() function like :

kc.init({adapter: "default | cordova"});

This will allow the users to choose the adapter they want. They can force the use of the default adapter even if they are using cordova or use the cordova adapter even if they are using a regular desktop.

If you omit this parameter, it just fallback to the old way. So, if you are under cordova it will run the cordova adapter and if you are under a desktop, it will load the default adapter instead.

Hope this can help.
2016-04-14 11:59:34 +02:00
Marek Posolda 3275b528f9 Merge pull request #2627 from mposolda/master
Migration and mongo fix
2016-04-14 11:48:16 +02:00
mposolda 5263101bc0 KEYCLOAK-2820 Mongo doesn't start on wildfly 2016-04-14 10:43:57 +02:00
mposolda 32d7464e52 KEYCLOAK-2819 Fix realm security header setup after migration 2016-04-14 10:43:48 +02:00
Stian Thorgersen 9e3fa4b566 Merge pull request #2624 from stianst/master
KEYCLOAK-2818
2016-04-14 09:14:31 +02:00
Stian Thorgersen f64ffcbefe KEYCLOAK-2818
Fix poms not updated by versions plugin
2016-04-14 08:16:07 +02:00
Stian Thorgersen 3bc57c19f0 Fix to cors-example-fix 2016-04-14 07:09:35 +02:00
Stian Thorgersen 5328d760fa Merge branch 'cors-example-fix-master' of https://github.com/abstractj/keycloak 2016-04-14 07:08:12 +02:00
Stian Thorgersen 8095587e63 Merge pull request #2623 from patriot1burke/master
merge adapter-spi adapter-spi-public
2016-04-14 07:03:50 +02:00
Stian Thorgersen 5c4bcdce57 Merge pull request #2621 from abstractj/minor-fix-master
There's no such profile for this example (master)
2016-04-14 07:02:43 +02:00
Stian Thorgersen 125eff9a95 Merge pull request #2618 from abstractj/angular2-example
Example points to wrong KC version
2016-04-14 07:00:34 +02:00
Stian Thorgersen 641dc9b3ef Merge pull request #2620 from abstractj/cordova-master
inappbrowser plugin returns 404 with the current namespace (master)
2016-04-14 06:59:58 +02:00
Bill Burke b080e1e782 merge adapter-spi adapter-spi-public 2016-04-13 22:25:30 -04:00
Bruno Oliveira f103480518 There's no such profile for this example 2016-04-13 15:50:24 -03:00
Bruno Oliveira 9af8af73bf inappbrowser plugin returns 404 with the current namespace 2016-04-13 15:48:48 -03:00
Bruno Oliveira 7279c88638 Fix the broken logout URL 2016-04-13 15:47:23 -03:00
Bruno Oliveira a714896264 Make the client URL match exactly the same configured at the realm 2016-04-13 15:47:15 -03:00
Bruno Oliveira 29eadf915a Example points to wrong KC version 2016-04-13 15:45:41 -03:00
Marek Posolda 3d310f8cc6 Merge pull request #2611 from mposolda/master
KEYCLOAK-2812 Make testsuite-arquillian working with -Pauth-server-wi…
2016-04-13 16:41:24 +02:00
mposolda 5a108c60a0 KEYCLOAK-2812 Make testsuite-arquillian working with -Pauth-server-wildfly 2016-04-13 16:05:03 +02:00
Marek Posolda 59535e4c43 Merge pull request #2608 from mposolda/master
KEYCLOAK-2811 FederationProvidersIntegrationTest.testReadOnly failing…
2016-04-13 13:50:04 +02:00
mposolda df1c111a72 KEYCLOAK-2811 FederationProvidersIntegrationTest.testReadOnly failing on MSAD 2016-04-13 12:40:39 +02:00
Marek Posolda 7bcd954e91 Merge pull request #2604 from mposolda/master
KEYCLOAK-2809 NPE when removing role, which is in scope of some Clien…
2016-04-13 12:39:04 +02:00
Vlasta Ramik 1754f242c7 Add tests to cover custom auth flows 2016-04-13 12:34:20 +02:00
Stian Thorgersen 794c4bc5f1 Merge pull request #2602 from stianst/KEYCLOAK-2810
KEYCLOAK-2810 Added robots.txt and robots meta header
2016-04-13 11:58:20 +02:00
mposolda 3c3bbdbbdb KEYCLOAK-2809 NPE when removing role, which is in scope of some ClientTemplate 2016-04-13 11:49:29 +02:00
Stian Thorgersen 6a428c8ee7 KEYCLOAK-2810 Added robots.txt and robots meta header 2016-04-13 11:22:57 +02:00
Marek Posolda d1a3ff8707 Merge pull request #2599 from mposolda/master
Fix testsuite with Mongo
2016-04-13 11:06:51 +02:00
Stian Thorgersen 9f0149d69c Merge pull request #2600 from stianst/KEYCLOAK-2804
KEYCLOAK-2804 Prevent browser from prefilling username/password into …
2016-04-13 10:39:46 +02:00
Stian Thorgersen bb3937e3c1 KEYCLOAK-2804 Prevent browser from prefilling username/password into non-login form 2016-04-13 10:00:48 +02:00
mposolda a52fb53ac7 Fix testsuite with Mongo 2016-04-13 09:55:28 +02:00
Bill Burke d5c0769499 Merge pull request #2596 from patriot1burke/master
KEYCLOAK-2790
2016-04-12 19:45:27 -04:00
Bill Burke 8f7f9e0b9c KEYCLOAK-2790 2016-04-12 18:25:23 -04:00
Bill Burke 6b261cd6e9 Merge pull request #2585 from mhajas/secureDeployment-PR
KEYCLOAK-2199 Add tests for secure deployment
2016-04-12 17:53:29 -04:00
Bill Burke b2a803929d Merge pull request #2567 from cpitman/proxy-headers
KEYCLOAK-2791 - Proxy handling for X-Forwarded headers
2016-04-12 17:53:15 -04:00
Bill Burke 137edf9b1a Merge pull request #2587 from vramik/KEYCLOAK-2794
KEYCLOAK-2794 Change undertow-embedded version
2016-04-12 17:52:45 -04:00
Bill Burke 3a669ad7d5 Merge pull request #2594 from patriot1burke/master
public private api
2016-04-12 17:51:57 -04:00
Bill Burke 7ec82ee7e2 public/private api 2016-04-12 16:48:30 -04:00
Bill Burke 515ed226be Merge remote-tracking branch 'upstream/master' 2016-04-12 15:19:58 -04:00
Bill Burke cca91dd175 public/private 2016-04-12 15:19:46 -04:00
Stian Thorgersen ca46621782 Merge pull request #2591 from stianst/KEYCLOAK-2807
KEYCLOAK-2807 Fix server info providers page
2016-04-12 16:18:17 +02:00
Stian Thorgersen 1c2eafeb80 KEYCLOAK-2807 Fix server info providers page 2016-04-12 15:38:52 +02:00
Stian Thorgersen 7109ad247f Merge pull request #2589 from stianst/KEYCLOAK-2799
KEYCLOAK-2799 Show error for identity brokering login if user is disa…
2016-04-12 14:11:15 +02:00
Stian Thorgersen 538e49117f KEYCLOAK-2799 Show error for identity brokering login if user is disabled 2016-04-12 13:14:42 +02:00
Stian Thorgersen fcf7b28b8f Merge pull request #2583 from stianst/KEYCLOAK-2803
KEYCLOAK-2803 Fix failure to add execution to client flow
2016-04-12 13:05:05 +02:00
Vlasta Ramik 36266b8574 Change undertow-embedded version from snapshot to released version 1.0.0.Alpha2 2016-04-12 09:40:57 +02:00
mhajas 8d15520939 Add tests for secure deployment 2016-04-12 09:13:15 +02:00
Stian Thorgersen 350a9cd997 KEYCLOAK-2803 Fix failure to add execution to client flow 2016-04-12 08:04:15 +02:00
Stian Thorgersen a67ead6a1b Merge pull request #2581 from stianst/KEYCLOAK-2770
KEYCLOAK-2770 Close mail transport after sending message
2016-04-12 07:43:56 +02:00
Stian Thorgersen 512a5ef079 Merge pull request #2572 from pdrozd/KEYCLOAK-2794
KEYCLOAK-2794 - changed version of undertow-embedded.
2016-04-12 07:42:13 +02:00
Stian Thorgersen d748f7e459 Merge pull request #2573 from stianst/KEYCLOAK-2700
KEYCLOAK-2700 Import existing realm fails due to can't delete group
2016-04-12 07:20:01 +02:00
Stian Thorgersen bd2238dbb8 KEYCLOAK-2770 Close mail transport after sending message 2016-04-12 07:06:52 +02:00
Marek Posolda bed8db7466 Merge pull request #2579 from mposolda/master
Identity brokering error handling fixes
2016-04-12 00:08:52 +02:00
mposolda e4f75409c9 KEYCLOAK-2802 NPE during identity broker cancelled from account mgmt 2016-04-11 23:31:24 +02:00
mposolda 98ad9b7e7c KEYCLOAK-2801 Redirected to login theme error page after failed social linking from account management 2016-04-11 23:30:18 +02:00
Marek Posolda 9579a7317e Merge pull request #2577 from mposolda/master
KEYCLOAK-2769 Better error handling of expired code in IdentityBroker…
2016-04-11 18:56:27 +02:00
mposolda 3e9ba71baa KEYCLOAK-2769 Better error handling of expired code in IdentityBrokerService 2016-04-11 18:20:26 +02:00
Marek Posolda 23e261244c Merge pull request #2575 from mposolda/master
KEYCLOAK-2795 Testsuite fails sometimes with NPE in LockServiceFactor…
2016-04-11 10:50:56 +02:00
mposolda 65f94fdf84 KEYCLOAK-2795 Testsuite fails sometimes with NPE in LockServiceFactory.getLockService 2016-04-11 10:09:15 +02:00
Stian Thorgersen e588860c21 KEYCLOAK-2700 Import existing realm fails due to can't delete group 2016-04-11 09:18:57 +02:00
Stian Thorgersen dccc338622 Merge pull request #2569 from stianst/KEYCLOAK-2766
KEYCLOAK-2766 Add missing id to AuthenticatorConfigRepresentation
2016-04-11 08:35:30 +02:00
Pavel Drozd ba788eb678 KEYCLOAK-2794 - changed version of undertow-embedded. 2016-04-11 08:04:19 +02:00
Stian Thorgersen 01beff741d KEYCLOAK-2766 Add missing id to AuthenticatorConfigRepresentation 2016-04-11 07:42:55 +02:00
Stian Thorgersen 5b156595fb Merge pull request #2561 from vramik/KEYCLOAK-2783-2.x
KEYCLOAK-2783 added nexus-staging-maven-plugin
2016-04-11 07:14:45 +02:00
Stian Thorgersen 19deb7c65e Merge pull request #2562 from guusdk/KEYCLOAK-2785
KEYCLOAK-2785: Admin client should be able to delete a user.
2016-04-11 07:14:06 +02:00
Stian Thorgersen 58b66b788f Merge pull request #2558 from mhajas/js-console-stability-PR
KEYCLOAK-2780 Better stability in JSConsole test
2016-04-11 07:12:22 +02:00
Stian Thorgersen 0447d857fd Merge pull request #2556 from mhajas/secure-porta-PR
KEYCLOAK-2779 Fix DemoServletAdpater tests
2016-04-11 07:11:19 +02:00
Stian Thorgersen 42b00ae080 Merge pull request #2554 from mhajas/eap6URLs-PR
KEYCLOAK-2778 Fix urls on eap6
2016-04-11 07:09:48 +02:00
Chris Pitman eb8d02a691 KEYCLOAK-2791 - Proxy handling for X-Forwarded headers 2016-04-09 02:11:59 -04:00
Marek Posolda 1ba6a27d0e Merge pull request #2564 from mposolda/master
KEYCLOAK-2769 Fix NPE during 'Identity Broker cancelled' and instead …
2016-04-08 22:14:19 +02:00
mposolda ee9c87877f KEYCLOAK-2769 Fix NPE during 'Identity Broker cancelled' and instead show keycloak 'we are sorry' page 2016-04-08 19:07:06 +02:00
Guus der Kinderen 38670df49a KEYCLOAK-2785: Admin client should be able to delete a user.
The delete user service should be exposed in the admin client.
2016-04-08 16:34:46 +02:00
Vlasta Ramik 54e745c6c9 added nexus-staging-maven-plugin 2016-04-08 15:40:26 +02:00
mhajas d730da757e Better stability in JSConsole test 2016-04-08 13:55:33 +02:00
mhajas fbca45d336 Fix DemoServlet test 2016-04-08 13:38:42 +02:00
mhajas ff66d471e2 Fix timeouts in DemoServlets tests 2016-04-08 13:37:22 +02:00
mhajas c65a156939 Fix urls on eap6 2016-04-08 13:26:16 +02:00
Marek Posolda def40448ac Merge pull request #2553 from mposolda/master
KEYCLOAK-2614 Refactor database lock to use 'SELECT FOR UPDATE' pessi…
2016-04-08 13:18:46 +02:00
mposolda 90fc721315 KEYCLOAK-2614 Refactor database lock to use 'SELECT FOR UPDATE' pessimistic locking 2016-04-08 12:20:54 +02:00
Stian Thorgersen ed97a9b6f3 Merge pull request #2551 from stianst/KEYCLOAK-2683
KEYCLOAK-2683 Remove QRCodeResource and embed QR code in image
2016-04-08 09:53:28 +02:00
Stian Thorgersen 8ea057a122 KEYCLOAK-2683 Remove QRCodeResource and embed QR code in image 2016-04-08 09:00:57 +02:00
Stian Thorgersen 5167b623d5 Merge pull request #2548 from stianst/master
KEYCLOAK-2774
2016-04-08 06:59:55 +02:00
Stian Thorgersen 1e1bf97ffc KEYCLOAK-2774
Adapters logout section points to removed tokens endpoint
2016-04-08 06:59:39 +02:00
Stian Thorgersen ef1f34d933 Merge pull request #2544 from vmuzikar/master
KEYCLOAK-2772 Add deletion test to GroupTest
2016-04-08 06:51:29 +02:00
Stian Thorgersen 57a14627e1 Merge pull request #2543 from stianst/KEYCLOAK-2646
KEYCLOAK-2646 Admin console shows 'Page not found' after password reset
2016-04-07 19:37:01 +02:00
Stian Thorgersen 1cba5e5428 Merge pull request #2546 from grossws/fix-PR-2449
Revert accidentally removed ResteasyClient configuration in admin
2016-04-07 19:35:43 +02:00
Konstantin Gribov 974c5615af Revert accidentally removed ResteasyClient configuration in admin
Fixes accidentally removed in PR #2449 ResteasyClient pool size parameter in
`org.keycloak.admin.client.Keycloak`.
2016-04-07 20:24:57 +03:00
Vaclav Muzikar 861e44b9c8 KEYCLOAK-2772 Add deletion test to GroupTest 2016-04-07 18:03:51 +02:00
Stian Thorgersen c1a8e692d0 Merge pull request #2538 from stianst/KEYCLOAK-2751
KEYCLOAK-2751
2016-04-07 16:27:11 +02:00
Stian Thorgersen 2a9304eb79 KEYCLOAK-2646 Admin console shows 'Page not found' after password reset 2016-04-07 16:26:20 +02:00
Stian Thorgersen e8932bbea0 Merge pull request #2449 from grossws/KEYCLOAK-2236
KEYCLOAK-2236 add service account support to keycloak-admin-client
2016-04-07 15:45:10 +02:00
Stian Thorgersen 63ad95a766 Merge pull request #2539 from guusdk/KEYCLOAK-2767
KEYCLOAK-2767: Should return a primitive if possible.
2016-04-07 15:41:33 +02:00
Stian Thorgersen b6d861fea6 KEYCLOAK-2751
Separate HTTP status codes for REST API errors
2016-04-07 15:39:12 +02:00
Konstantin Gribov 96424536a7 Add service account support to Keycloak admin client
Added grant_type=client_credentials support to keycloak-admin-client
so `keycloak-admin-client` can be used with service client account.

Fixes #KEYCLOAK-2236
2016-04-07 15:24:07 +03:00
Stian Thorgersen b86f15f32a Merge pull request #2381 from thomasdarimont/issue/KEYCLOAK-2054
KEYCLOAK-2054 - Allow to configure proxy for auth-server requests in adapters.
2016-04-07 14:02:36 +02:00
Guus der Kinderen be578684b9 KEYCLOAK-2767: Should return a primitive if possible.
A JSON primitive is valid JSON. There is no need to construct a JSON object
just for the sake of being JSON complient. This keeps things nice and simple.
2016-04-07 13:19:29 +02:00
Thomas Darimont bccc5fa7b1 KEYCLOAK-2054 - Allow to configure proxy for auth-server requests in adapters.
Previously the adapter configuration did not support specifying a proxy
for auth-server requests issued via the Apache HTTP Client by Keycloak.
This made it very difficult to connect an Application with Keycloak
that was required to use a proxy.

Introduced new `proxy-url` attribute to the adapter configuration
which makes it possible to configure a proxy to be used for auth-server
requests. Proxy-Host, Proxy-Port and Proxy-Scheme are taken from the
configured proxy URL.
Note that proxies that require authentication are currently not supported.
2016-04-07 11:09:40 +02:00
Stian Thorgersen d98cd4235c Merge pull request #2535 from stianst/master
KEYCLOAK-2763
2016-04-07 09:37:00 +02:00
Stian Thorgersen 08a0862369 KEYCLOAK-2763
Document requirement to use a secure private network for clustering
2016-04-07 09:36:43 +02:00
Stian Thorgersen f2dd556323 Merge pull request #2532 from stianst/KEYCLOAK-2762
KEYCLOAK-2762 Renaming a realm without saving the form affects all li…
2016-04-07 09:34:35 +02:00
Stian Thorgersen 6dc1194247 Merge pull request #2508 from guusdk/KEYCLOAK-2731
KEYCLOAK-2731: Improve thread safety of TokenManager
2016-04-07 07:36:22 +02:00
Stian Thorgersen a7c956bf10 Merge pull request #2505 from guusdk/KEYCLOAK-2746
KEYCLOAK-2746: By default, allow for concurrent usage
2016-04-07 07:35:39 +02:00
Stian Thorgersen 0907feb508 Merge pull request #2446 from guusdk/KEYCLOAK-2726
KEYCLOAK-2726: Invalidate token upon failure
2016-04-07 07:24:03 +02:00
Stian Thorgersen 30e2709bd0 Merge pull request #2443 from guusdk/KEYCLOAK-2721
KEYCLOAK-2721: Do not recreate TokenService proxy
2016-04-07 07:20:46 +02:00
Stian Thorgersen f585f5dfc9 Merge pull request #2530 from stianst/KEYCLOAK-2761
KEYCLOAK-2761 Broken on/off switch at Client Mappers with specific wi…
2016-04-07 07:13:35 +02:00
Stian Thorgersen 61ae15cf56 KEYCLOAK-2762 Renaming a realm without saving the form affects all links in Console 2016-04-07 06:59:21 +02:00
Stian Thorgersen 139e19514b Merge pull request #2528 from stianst/KEYCLOAK-2760
KEYCLOAK-2760
2016-04-07 06:51:24 +02:00
Stian Thorgersen 19b82f00d4 Merge pull request #2527 from stianst/KEYCLOAK-2759
KEYCLOAK-2759 Fix error message when renaming realm to name that exists
2016-04-07 06:50:55 +02:00
Stian Thorgersen 623ec6c510 Merge pull request #2524 from stianst/KEYCLOAK-2758
KEYCLOAK-2758
2016-04-07 06:50:05 +02:00
Stian Thorgersen a1b6310777 Merge pull request #2523 from winfinit/master
added text wrapping in js-console example
2016-04-07 06:28:54 +02:00
Stian Thorgersen d395a9e318 KEYCLOAK-2761 Broken on/off switch at Client Mappers with specific window width 2016-04-07 06:18:40 +02:00
Stian Thorgersen 729d73bb17 KEYCLOAK-2760
Cannot delete a client template mapper with a little trash icon in heading
2016-04-07 06:06:55 +02:00
Stian Thorgersen 2694e003c4 KEYCLOAK-2759 Fix error message when renaming realm to name that exists 2016-04-07 06:00:31 +02:00
Stian Thorgersen 5854e44391 KEYCLOAK-2758
Weird behavior of add/remove button for 'Valid Redirect URIs' in a client settings form
2016-04-07 05:43:07 +02:00
Roman Jurkov 361f0b5048 added text wrapping in js-console example 2016-04-06 13:49:47 -04:00
Stian Thorgersen 8de8446cb5 Merge pull request #2520 from stianst/KEYCLOAK-2756
KEYCLOAK-2756
2016-04-06 19:25:53 +02:00
Stian Thorgersen 6ccf3549ad KEYCLOAK-2756
Renaming a realm breaks down the Clients
2016-04-06 15:18:49 +02:00
Marek Posolda c469109d22 Merge pull request #2517 from mposolda/master
KEYCLOAK-1982 Some builtin objects might be missing when import JSON exported from previous versions
2016-04-06 13:24:32 +02:00
Stian Thorgersen 8164c05cb8 Merge pull request #2519 from stianst/master
KEYCLOAK-2752
2016-04-06 13:19:42 +02:00
Stian Thorgersen b8c08d05bf KEYCLOAK-2752
Update documentation re directory for providers
2016-04-06 13:18:23 +02:00
Stian Thorgersen 0419bb2232 Merge pull request #2514 from stianst/KEYCLOAK-2590
KEYCLOAK-2590 Add custom rest endpoint to set time offset
2016-04-06 12:58:13 +02:00
mposolda 72371e5d76 KEYCLOAK-1982 Some builtin objects might be missing when import JSON exported from old versions 2016-04-06 11:43:58 +02:00
mposolda f0b168c18f Ensure KeycloakSessionFactory.close is called before shutdown of auth-server-undertow 2016-04-06 11:43:49 +02:00
mposolda 3d5055d920 KEYCLOAK-2737 Handle the databaseSchema: 'validate' against empty database 2016-04-06 11:43:41 +02:00
Stian Thorgersen 0fc4ca0d12 KEYCLOAK-2590 Add custom rest endpoint to set time offset 2016-04-06 11:14:37 +02:00
Stian Thorgersen 4db73942e6 Merge pull request #2512 from stianst/KEYCLOAK-2262
KEYCLOAK-2262
2016-04-06 11:12:02 +02:00
Stian Thorgersen 0c829cd605 KEYCLOAK-2262 Refactor realm resource provider, remove admin resource provider and added example 2016-04-06 10:24:30 +02:00
Pedro Igor e876a3c988 [KEYCLOAK-2262] - New SPIs to extend both Realm and Admin RESTful APIs 2016-04-06 09:43:24 +02:00
Stian Thorgersen 91cbfbd37f Merge pull request #2511 from stianst/KEYCLOAK-2748
KEYCLOAK-2748
2016-04-06 09:10:23 +02:00
Stian Thorgersen 4a285bae9b KEYCLOAK-2748
Mark modules as private
2016-04-06 08:07:33 +02:00
Guus der Kinderen 804dd13abd KEYCLOAK-2731: Improve thread safety of TokenManager
This commit guards access to the non-final fields of TokenManager by its intrinsic lock.
2016-04-05 15:01:37 +02:00
Stian Thorgersen 0d6c72a378 Merge pull request #2503 from stianst/KEYCLOAK-2707
KEYCLOAK-2707 Fix account management layout for medium size screens
2016-04-05 13:26:02 +02:00
Marek Posolda 17b84df631 Merge pull request #2507 from mposolda/master
KEYCLOAK-2623 Remove auth-server-url-for-backend-requests from adapters
2016-04-05 13:09:47 +02:00
mposolda 784b724fe0 Removed docker-cluster as integration-arquillian has support for clustering tests now 2016-04-05 11:45:34 +02:00
mposolda 65dc7ddb44 KEYCLOAK-2623 Remove auth-server-url-for-backend-requests from adapters 2016-04-05 11:43:41 +02:00
Guus der Kinderen 120b880427 KEYCLOAK-2746: By default, allow for concurrent usage
The nature of Keycloak makes it very plausible that it is used in
a concurrent setting. With that in mind, it would make sense to,
by default, allow for more than one concurrent Resteasy connection
in the admin client code.
2016-04-05 11:34:02 +02:00
Stian Thorgersen a4335c3eb8 Merge pull request #2502 from velias/KEYCLOAK-2670-master
KEYCLOAK-2670 for master - client app is able to push additional HTTP GET
2016-04-05 11:20:06 +02:00
Stian Thorgersen 373ded9761 Merge pull request #2500 from vmuzikar/master
KEYCLOAK-2745 More UI tests stabilization
2016-04-05 11:19:01 +02:00
Stian Thorgersen 3e9ae7aa82 Merge pull request #2498 from stianst/KEYCLOAK-2722
KEYCLOAK-2722 Check user session in token introspection endpoint
2016-04-05 11:18:32 +02:00
Vlastimil Elias 21a2a47172 KEYCLOAK-2670 - client app is able to push additional HTTP GET
parameters in initial OpenID auth request for use in Auth flows
2016-04-05 10:41:28 +02:00
Stian Thorgersen 92c1e01d0e KEYCLOAK-2707 Fix account management layout for medium size screens 2016-04-05 10:30:43 +02:00
Vaclav Muzikar 3dbf5ee389 KEYCLOAK-2745 More UI tests stabilization 2016-04-05 10:13:40 +02:00
Stian Thorgersen 55c5e9a381 KEYCLOAK-2722 Check user session in token introspection endpoint 2016-04-05 09:31:39 +02:00
Stian Thorgersen 1f26765546 Merge pull request #2496 from stianst/KEYCLOAK-2652
KEYCLOAK-2652 Added fasterxml modules to as7 adapter dist
2016-04-05 08:57:54 +02:00
Stian Thorgersen c4a11cd52a Merge pull request #2494 from stianst/KEYCLOAK-2711
KEYCLOAK-2711
2016-04-05 08:54:35 +02:00
Stian Thorgersen b924cf9e9f Merge pull request #2492 from stianst/KEYCLOAK-2704
KEYCLOAK-2704
2016-04-05 08:54:18 +02:00
Marek Posolda 1714422b10 Merge pull request #2487 from mposolda/master
databaseSchema option - proper support for "validate" for both JPA and Mongo
2016-04-05 08:48:33 +02:00
Stian Thorgersen 7cea4f6695 KEYCLOAK-2652 Added fasterxml modules to as7 adapter dist 2016-04-05 08:02:32 +02:00
Stian Thorgersen 85622ac522 KEYCLOAK-2711
Button for 'impersonate user' is visible when I am creating new user
2016-04-05 07:53:57 +02:00
Stian Thorgersen 48551d362a KEYCLOAK-2704
User count missing in REST admin endpoint
2016-04-05 07:48:20 +02:00
Bill Burke cee8fee504 Merge pull request #2490 from patriot1burke/master
KEYCLOAK-2669
2016-04-04 21:14:13 -04:00
Bill Burke 9a4308e092 fix again 2016-04-04 20:36:40 -04:00
Bill Burke 93b3f448d3 fix 2016-04-04 21:23:09 -04:00
Bill Burke 8beff63dc0 KEYCLOAK-2669 2016-04-04 21:12:55 -04:00
Bill Burke 6b5f26ab23 Merge pull request #2488 from patriot1burke/master
KEYCLOAK-2738
2016-04-04 18:54:46 -04:00
Bill Burke 4ed1061487 KEYCLOAK-2738 2016-04-04 18:47:11 -04:00
mposolda 3a8b450575 KEYCLOAK-2737 connectionsMongo: Support for 'databaseSchema: validate' 2016-04-04 22:24:33 +02:00
mposolda e6df30602e KEYCLOAK-2744 connectionsJpa: the databaseSchema 'validate' should check if database schema is updated to latest version 2016-04-04 22:24:25 +02:00
Bill Burke 72299b4844 Merge pull request #2481 from stianst/KEYCLOAK-2742
KEYCLOAK-2742
2016-04-04 12:54:22 -04:00
Stian Thorgersen 4e4559fdc2 Merge pull request #2484 from stianst/master
Minor update to themes README.txt
2016-04-04 15:26:29 +02:00
Stian Thorgersen dcdef4daa4 Minor update to themes README.txt 2016-04-04 15:26:04 +02:00
Stian Thorgersen 9299591272 KEYCLOAK-2742
Broken navigation links while creating/editing a Client Mapper
2016-04-04 15:17:15 +02:00
Stian Thorgersen 571a4389e9 Merge pull request #2479 from stianst/KEYCLOAK-2651
KEYCLOAK-2651
2016-04-04 10:05:00 +02:00
Stian Thorgersen 78b11bca84 Merge pull request #2477 from stianst/KEYCLOAK-2608
KEYCLOAK-2608
2016-04-04 10:04:45 +02:00
Stian Thorgersen ff73e1a36a KEYCLOAK-2651
No CSRF protection or general security headers on welcome page
2016-04-04 09:07:21 +02:00
Stian Thorgersen 134c9b11c0 KEYCLOAK-2608
Timestamp resolution of 1s for Event.time is inappropriate for use with tests
2016-04-04 08:30:01 +02:00
Bill Burke dfa7c76331 Merge pull request #2475 from patriot1burke/master
KEYCLOAK-2662
2016-04-01 17:55:42 -04:00
Bill Burke f21cede378 KEYCLOAK-2662 2016-04-01 16:43:38 -04:00
Bill Burke 80dfc63768 Merge pull request #2458 from vmuzikar/master
KEYCLOAK-2732
2016-04-01 16:03:01 -04:00
Bill Burke 29ffe96388 Merge pull request #2473 from patriot1burke/master
KEYCLOAK-2512
2016-04-01 16:01:53 -04:00
Bill Burke 4d5ae5dd68 KEYCLOAK-2512 2016-04-01 14:50:26 -04:00
Marek Posolda 6a3b5cd4c0 Merge pull request #2470 from mposolda/master
KEYCLOAK-2737 Remove 'databaseSchema' property from connectionsMongo
2016-04-01 18:48:42 +02:00
mposolda afd3a36ee4 KEYCLOAK-2737 Remove 'databaseSchema' property from connectionsMongo 2016-04-01 16:55:06 +02:00
Marek Posolda e02d0ed629 Merge pull request #2468 from mposolda/master
KEYCLOAK-2613 KEYCLOAK-2413 Export/import fixes and improvements
2016-04-01 16:46:17 +02:00
mposolda a4d9aaf916 KEYCLOAK-2613 Add version to RealmRepresentation in JSON exports 2016-04-01 16:04:58 +02:00
mposolda f83b67cdf5 KEYCLOAK-2413 Very slow export/import of realms with large users count 2016-04-01 16:04:48 +02:00
Marek Posolda 46f6b97c26 Merge pull request #2466 from mposolda/master
Fix LDAPGroupMapperTest with MSAD and Mongo
2016-04-01 11:22:56 +02:00
mposolda 5d7b549323 Fix LDAPGroupMapperTest with MSAD and Mongo 2016-04-01 10:44:35 +02:00
Marek Posolda 7f88e769f2 Merge pull request #2464 from mposolda/master
KEYCLOAK-2661 Broken migration from Keycloak 1.5 with Mongo 3
2016-04-01 09:28:29 +02:00
mposolda 36bc97e3cd KEYCLOAK-2661 Broken migration from Keycloak 1.5 with Mongo 3 2016-03-31 22:30:41 +02:00
Bill Burke 3b55bd08a6 Merge pull request #2462 from patriot1burke/master
KEYCLOAK-2621
2016-03-31 14:34:23 -04:00
Bill Burke d35ccd9a5e KEYCLOAK-2621 2016-03-31 14:33:41 -04:00
Bill Burke 0fea54ebb5 Merge pull request #2460 from patriot1burke/master
KEYCLOAK-2516
2016-03-31 13:58:06 -04:00
Bill Burke 7c9dbdfc91 KEYCLOAK-2516 2016-03-31 13:56:46 -04:00
Vaclav Muzikar 4ce8b2431b KEYCLOAK-2732 2016-03-31 18:16:03 +02:00
Marek Posolda e506e385f1 Merge pull request #2457 from mposolda/master
KEYCLOAK-2610 Performance improve - add more indexes to database
2016-03-31 13:36:07 +02:00
mposolda c52500ce88 KEYCLOAK-2610 Add more indexes to database 2016-03-31 11:50:02 +02:00
mposolda 6ab411b2de KEYCLOAK-2610 More operations added to ManyUsersTest 2016-03-31 11:49:51 +02:00
Bill Burke e7f7a5f6c8 Merge pull request #2454 from patriot1burke/master
KEYCLOAK-2716
2016-03-30 20:26:44 -04:00
Bill Burke d1552cd6e8 resolve conflict 2016-03-30 18:23:40 -04:00
Bill Burke 545fb8b849 KEYCLOAK-2716 2016-03-30 18:15:11 -04:00
Bill Burke f71a6ec904 Merge pull request #2452 from patriot1burke/master
KEYCLOAK-2490
2016-03-30 15:49:16 -04:00
Bill Burke e4fcaad243 Merge pull request #2450 from patriot1burke/master
KEYCLOAK-2691
2016-03-30 15:46:34 -04:00
Bill Burke 9cf788c590 KEYCLOAK-2490 2016-03-30 15:41:46 -04:00
Bill Burke 3d3d526e30 Merge pull request #2444 from mhajas/js-console-up-PR
KEYCLOAK-2725 Run js-console example on non-relative scanario + tests of implicit flow
2016-03-30 15:16:50 -04:00
Bill Burke 020d090aee Merge pull request #2430 from mstruk/assert-events
KEYCLOAK-2589 KEYCLOAK-2607 KEYCLOAK-2597 Port AssertEvents to integration-arquillian
2016-03-30 15:16:25 -04:00
Bill Burke 1d2fef5b9b Merge pull request #2447 from tkyjovsk/KEYCLOAK-2641-fix
KEYCLOAK-2641 fix
2016-03-30 15:15:54 -04:00
Bill Burke 2cc3588be5 Merge remote-tracking branch 'upstream/master' 2016-03-30 15:07:35 -04:00
Bill Burke 12bf4b498e KEYCLOAK-2691 2016-03-30 15:07:24 -04:00
Tomas Kyjovsky 6b6a673642 KEYCLOAK-2641 updated READMEs 2016-03-30 18:11:09 +02:00
Guus der Kinderen ad7a6c4854 KEYCLOAK-2726: Invalidate token upon failure
When a token managed by TokenManager is known to be invalid, it should no
longer be used. This commit adds a response listener to the only filter
using TokenManager, which causes, upon authentication failure, to
invalidate the token that was used.
2016-03-30 15:33:58 +02:00
Tomas Kyjovsky 47773371e3 KEYCLOAK-2641 Fixed location of module.xsl 2016-03-30 14:48:19 +02:00
mhajas d0aeb25f14 Run js-console example on non-relative scanario + tests of implicit flow 2016-03-30 11:52:05 +02:00
Guus der Kinderen 89158c9dcf KEYCLOAK-2721: Do not recreate TokenService proxy
By re-using the service proxy, classloading issues can be prevented.
2016-03-29 11:11:35 +02:00
Bill Burke dfc4cf36a2 Merge pull request #2441 from ssilvert/group-export
KEYCLOAK-2619: Partial Import doesn't support groups
2016-03-28 22:58:28 -04:00
Stan Silvert 0f52768064 KEYCLOAK-2619: Partial Import doesn't support groups 2016-03-28 14:26:34 -04:00
Bill Burke 2641a93943 Merge pull request #2439 from patriot1burke/master
KEYCLOAK-2718
2016-03-28 12:01:22 -04:00
Bill Burke 1dd4bdf0b7 KEYCLOAK-2718 2016-03-28 11:13:02 -04:00
Bill Burke 73d74f69c3 Merge pull request #2437 from patriot1burke/master
KEYCLOAK-2698
2016-03-28 10:21:54 -04:00
Bill Burke 28c70fa8ab KEYCLOAK-2698 2016-03-28 10:20:27 -04:00
Bill Burke 17fcc38157 Merge pull request #2426 from tkyjovsk/fail-if-no-tests-false
Arq. TestSuite Surefire config: failIfNoTests=false
2016-03-28 08:48:01 -04:00
Bill Burke add41ea92b Merge pull request #2435 from patriot1burke/master
KEYCLOAK-2584
2016-03-25 00:08:32 -04:00
Bill Burke e497eb0950 KEYCLOAK-2584 2016-03-24 21:26:09 -04:00
Bill Burke cb4f95416c Merge pull request #2433 from patriot1burke/master
KEYCLOAK-2624
2016-03-24 16:52:29 -04:00
Bill Burke b253fe9532 Merge remote-tracking branch 'upstream/master' 2016-03-24 15:57:01 -04:00
Bill Burke e2436c4722 KEYCLOAK-2624 2016-03-24 15:56:40 -04:00
Marko Strukelj 76a4db5d54 KEYCLOAK-2597 Invalid children group location header response 2016-03-24 17:13:00 +01:00
Marko Strukelj 790a068bdb KEYCLOAK-2607 Migrate Group tests to ARQ testsuite 2016-03-24 17:13:00 +01:00
Marko Strukelj 95d222348d KEYCLOAK-2589 Copy AssertEvents to Arquillian testsuite and modify to pull events from admin endpoints 2016-03-24 17:13:00 +01:00
Marek Posolda 7bdf9f4ba1 Merge pull request #2429 from mposolda/master
KEYCLOAK-2713 Fix error at startup
2016-03-24 16:12:06 +01:00
mposolda c9545e16f7 KEYCLOAK-2713 Fix error at startup 2016-03-24 15:30:53 +01:00
Tomas Kyjovsky f6dea6752c Arq. TestSuite Surefire config: failIfNoTests=false 2016-03-24 15:08:55 +01:00
Bill Burke 0f5caffbab Merge pull request #2421 from tkyjovsk/KEYCLOAK-2641
KEYCLOAK-2641 moved app-server configurations from adapter tests
2016-03-24 09:31:42 -04:00
Bill Burke 16061ec727 Merge pull request #2424 from patriot1burke/master
KEYCLOAK-2543
2016-03-24 09:30:39 -04:00
Bill Burke 6030a65d1b KEYCLOAK-2543 2016-03-24 08:49:08 -04:00
Marek Posolda 29c7cb9061 Merge pull request #2420 from mposolda/master
Fixes and performance improvements for "create user"
2016-03-24 11:58:38 +01:00
Tomas Kyjovsky a9c7bbd44c KEYCLOAK-2641 moved app-server configurations from adapter tests to servers/app-server module 2016-03-24 11:24:21 +01:00
mposolda c973dc9eee KEYCLOAK-2610 Ommit checks for default roles and groups during creation of user 2016-03-24 11:11:35 +01:00
mposolda 16ec76e864 KEYCLOAK-2712 Default required actions not added when user created through admin console 2016-03-24 11:11:35 +01:00
mposolda 20fe2b75b5 KEYCLOAK-2710 Improve hibernate statistics report 2016-03-24 11:11:35 +01:00
Martin Schmied d7fbfc05e8 Fix k_query_bearer_token endpoint in proxy
`org.keycloak.adapters.AuthenticatedActionsHandler` which handles token
requests performs blocking IO. However, the exchange is in non-blocking
mode when it reaches this handler in Keycloak proxy.
2016-03-24 09:32:55 +01:00
Stian Thorgersen 8f1292494f Merge pull request #2411 from vmuzikar/KEYCLOAK-2697
[KEYCLOAK-2697] Fix some UI tests stability
2016-03-24 08:19:45 +00:00
Stian Thorgersen 0ef36096fb Merge pull request #2407 from vmuzikar/KEYCLOAK-2694
[KEYCLOAK-2694] Add system property for test constants location
2016-03-24 08:18:31 +00:00
Stian Thorgersen 5181e95776 Merge pull request #2405 from vramik/KEYCLOAK-2676
KEYCLOAK-2676 - Review clients tests
2016-03-24 08:17:27 +00:00
Marek Posolda cc02b16742 Merge pull request #2415 from mposolda/master
DB tuning - step 1
2016-03-23 23:29:20 +01:00
mposolda 50f8846c3d KEYCLOAK-2610 Improve performance of creating users with MySQL 2016-03-23 22:36:31 +01:00
mposolda 22ce20ff6b KEYCLOAK-2710 Possibility to log some hibernate statistics 2016-03-23 22:36:31 +01:00
Marek Posolda 0dea5eac46 Merge pull request #2413 from mposolda/master
Caching of identityProvider links
2016-03-22 22:26:45 +01:00
mposolda f9595fc6c5 KEYCLOAK-2632 Remove flag from UserCacheSession.invalidateUsers 2016-03-22 21:39:35 +01:00
mposolda 4c6dd10e48 KEYCLOAK-2632 Caching of identity provider links 2016-03-22 21:39:35 +01:00
Vaclav Muzikar 25363a91f9 [KEYCLOAK-2697] Fix some UI tests stability 2016-03-22 13:57:23 +01:00
Marek Posolda 756cea5fb2 Merge pull request #2410 from mposolda/master
LDAP fixes
2016-03-22 13:43:12 +01:00
mposolda 7ffd6dc7a7 KEYCLOAK-2696 Unexpected error when trying to delete role mappings from read-only LDAP role mapper 2016-03-22 13:03:49 +01:00
mposolda 4a06d7590e KEYCLOAK-2682 NPE when LDAP groups points to non-existent user 2016-03-22 13:03:48 +01:00
Vaclav Muzikar 18b07190bf Add system property for test constants location
(cherry picked from commit f9afa13)
2016-03-22 12:17:13 +01:00
Vlasta Ramik 1cfe58bccd KEYCLOAK-2676 - Review clients tests 2016-03-22 11:57:41 +01:00
Stian Thorgersen 705a598ce6 Merge pull request #2402 from stianst/master
KEYCLOAK-2657 Remove copyright.txt and README.txt from server dist
2016-03-22 08:34:38 +00:00
Stian Thorgersen 23091ec738 KEYCLOAK-2657 Remove copyright.txt and README.txt from server dist 2016-03-22 07:28:45 +00:00
Stian Thorgersen 2c9172f707 Merge pull request #2399 from stianst/KEYCLOAK-2469
Keycloak 2469
2016-03-22 08:09:59 +01:00
Marek Posolda 741fa16ec7 Merge pull request #2401 from mposolda/master
Caching of user consents and serviceAccount links
2016-03-22 08:03:31 +01:00
mposolda 5c912d3501 KEYCLOAK-2631 Caching of service account links 2016-03-22 07:08:47 +01:00
mposolda e2e96f7183 KEYCLOAK-2630 Add caching for user consents 2016-03-22 07:07:42 +01:00
mposolda 4193856fbb KEYCLOAK-2687 ZIPException during import big number of users 2016-03-22 07:04:54 +01:00
Stian Thorgersen e56759a6c0 Merge pull request #2382 from jblashka/master
Fix JS error when working with theme i18n settings
2016-03-21 16:08:38 +01:00
Stian Thorgersen ce717fa20e KEYCLOAK-2469 Minor changes 2016-03-21 15:45:53 +01:00
Stian Thorgersen 204d226267 Merge branch 'issue/KEYCLOAK-2469' of https://github.com/thomasdarimont/keycloak into thomasdarimont-issue/KEYCLOAK-2469 2016-03-21 15:30:48 +01:00
Stian Thorgersen ca67e8a764 Merge pull request #2398 from vramik/master-KEYCLOAK-2690
KEYCLOAK-2690 - create page source file when test fails
2016-03-21 15:26:30 +01:00
Stian Thorgersen 60667e65e7 Merge pull request #2395 from mhajas/mellon-realm-PR
KEYCLOAK-2689 Modify mod_auth_mellon realm for rhel7
2016-03-21 15:21:26 +01:00
Stian Thorgersen 3b7101650e Merge pull request #2393 from mhajas/mellon-timeout-PR
KEYCLOAK-2688 Modified session length in mod_auth_mellon test
2016-03-21 15:21:00 +01:00
Stian Thorgersen 82300a90f8 Merge pull request #2388 from pdrozd/KEYCLOAK-2685
KEYCLOAK-2685 - Updated EAP7 namespaces
2016-03-21 15:20:26 +01:00
Jared Blashka 49c5610971 Remove admin theme from i18n consideration 2016-03-21 09:42:00 -04:00
Vlasta Ramik 75ef3efd15 create page source file when test fails 2016-03-21 14:19:11 +01:00
mhajas e7ec454f81 Modify realm for rhel7 2016-03-21 12:41:17 +01:00
mhajas a80a65c525 Modified session length 2016-03-21 12:32:51 +01:00
Stian Thorgersen 973619d7c0 Merge pull request #2380 from thomasdarimont/issue/KEYCLOAK-2664
KEYCLOAK-2664 - QRCodeResource should prohibit caching of the generated image
2016-03-21 10:38:39 +01:00
Stian Thorgersen 50ed089980 Merge pull request #2378 from vmuzikar/master
Add properties file for some "constants" used in integration tests
2016-03-21 10:37:29 +01:00
Stian Thorgersen 3e208c10aa Merge pull request #2389 from thomasdarimont/issue/KEYCLOAK-2686-migration-from-191-to-192
KEYCLOAK-2686 - Fix failing migration from 1.9.1 to 1.9.2.
2016-03-21 10:30:44 +01:00
Thomas Darimont fa8af64098 KEYCLOAK-2686 - Fix failing migration from 1.9.1 to 1.9.2.
Since the `Map` returned by `realm.getBrowserSecurityHeaders()` is unmodifiable
we need to add the new header setting to a copy of the map which we then set
on the realm.
2016-03-21 09:52:25 +01:00
Pavel Drozd c61b457c02 KEYCLOAK-2685 - Updated EAP7 namespaces 2016-03-21 08:48:47 +01:00
Marek Posolda 5c98b8c6ae Merge pull request #2384 from mposolda/master
KEYCLOAK-2681 JS adapter init function with initOptions argument does…
2016-03-18 14:16:51 +01:00
Thomas Darimont 3e6b6507f4 KEYCLOAK-2664 - QRCodeResource should prohibit caching of the generated image
Added cache-control headers to avoid caching for generated
QRCode images.

Adjusted CacheControlUtil#noCache() to avoid caching more aggressively.
2016-03-18 12:18:07 +01:00
Marek Posolda d285721063 Merge pull request #2383 from ratcashdev/master
Fix when importing empty uniqueMember attributes
2016-03-18 12:18:02 +01:00
mposolda 95a1fc32eb KEYCLOAK-2681 JS adapter init function with initOptions argument doesn't call success callback 2016-03-18 12:06:46 +01:00
ratcashdev 13d2f872ff KEYCLOAK-2679: Fix when importing empty uniqueMember attributes 2016-03-18 09:55:35 +01:00
Jared Blashka 7a05078030 Fix JS error when working with theme i18n 2016-03-16 18:28:06 -04:00
Vaclav Muzikar 5c3159c83d Merge with upstream 2016-03-14 16:09:56 +01:00
Marek Posolda f63655edf3 Merge pull request #2377 from mposolda/master
KEYCLOAK-2634 Better error reporting if password update failed due to…
2016-03-14 14:32:28 +01:00
mposolda 23aa490c72 KEYCLOAK-2634 Better error reporting if password update failed due to MSAD password policy 2016-03-14 13:36:20 +01:00
Marek Posolda 1691ae7e29 Merge pull request #2374 from mposolda/master
A bit more details about Kerberos and LDAP mappers in docs
2016-03-14 11:52:36 +01:00
mposolda 804fb2dc96 A bit more details about Kerberos and LDAP mappers in docs 2016-03-14 11:52:04 +01:00
Marek Posolda 975dcb68a9 Merge pull request #2373 from mposolda/master
LDAP fixes
2016-03-14 10:32:20 +01:00
mposolda e24ce91e81 KEYCLOAK-2659 Allow sync all roles even if there are more than 1000 2016-03-14 09:39:22 +01:00
mposolda 2d188068c4 KEYCLOAK-2644 Delete user with a READ_ONLY LDAP federation provider just from Keycloak DB 2016-03-14 09:39:14 +01:00
Marek Posolda 214cd2ac22 Merge pull request #2370 from mposolda/master
LDAP fixes
2016-03-11 23:12:06 +01:00
mposolda 1142ed5583 KEYCLOAK-2655 Support of lazy sync LDAP groups, which user is member of 2016-03-11 22:33:03 +01:00
mposolda 85ccd64e01 KEYCLOAK-2643 Added write-only property to LDAP full-name attribute mapper 2016-03-11 22:32:55 +01:00
mposolda 73c3534e7a KEYCLOAK-2629 LDAP Federation provider - input fields validation 2016-03-11 22:32:45 +01:00
mposolda c6a7d0b772 KEYCLOAK-2640 LDAP group sync does not sync more than 1000 groups 2016-03-11 22:32:35 +01:00
Stian Thorgersen 4f0d827aca Merge pull request #2368 from stianst/KEYCLOAK-2593
KEYCLOAK-2593 Character set missing from responses and no content sni…
2016-03-11 16:23:18 +01:00
Stian Thorgersen 7342261dbe KEYCLOAK-2593 Character set missing from responses and no content sniffing defense in place 2016-03-11 15:31:15 +01:00
Stian Thorgersen 8f2c5af7d1 Merge pull request #2365 from stianst/KEYCLOAK-2612
KEYCLOAK-2612 Set default eviction strategy for users cache
2016-03-11 15:23:56 +01:00
Stian Thorgersen 018b104cbf KEYCLOAK-2612 Set default eviction strategy for users cache 2016-03-11 13:01:57 +01:00
Stian Thorgersen b3bb68aed7 Merge pull request #2364 from stianst/KEYCLOAK-2637
KEYCLOAK-2637
2016-03-11 13:00:54 +01:00
Stian Thorgersen bdfc9b8efc KEYCLOAK-2637
ModelExceptionMapper uses AdminMessagesProvider which loads messages outside of themes
2016-03-11 12:08:28 +01:00
Stian Thorgersen 3b1987cb3a Merge pull request #2360 from stianst/KEYCLOAK-2636
KEYCLOAK-2636
2016-03-11 11:11:53 +01:00
Marek Posolda 18c0e8946a Merge pull request #2361 from mposolda/master
KEYCLOAK-2628 protected method to IdpCreateUserIfUniqueAuthenticator …
2016-03-11 11:08:17 +01:00
mposolda 25f965aa2e KEYCLOAK-2628 protected method to IdpCreateUserIfUniqueAuthenticator after user is registered 2016-03-11 10:05:41 +01:00
Stian Thorgersen 50e5d203b3 KEYCLOAK-2636
Tooltip for redirect uri is wrong
2016-03-11 06:39:25 +01:00
Thomas Darimont 41358eea4d KEYCLOAK-2469 - Introduced new redirect endpoint for clients.
Previously one had to configure hardcoded urls to link from one client
application to others since keycloak didn't provide a way to get the
actual client URL by providing clientId and realm information.

We now support a new endpoint with the path {realm}/clients/{client_id}/redirect
that responds to GET requests with a 307 (temporary redirect) with the
configured client URL. This allows to refer to any client just by the
realmName and clientId and let Keycloak redirect to the actual client
application.

Add documentation for new redirect endpoint.
2016-03-10 23:45:22 +01:00
Bill Burke 4b69cb4551 Merge pull request #2359 from patriot1burke/master
refactor user cache.
2016-03-10 14:15:37 -05:00
Bill Burke b0264d528d trace log 2016-03-10 13:29:05 -05:00
Bill Burke 82ad26189f refactor user cache 2016-03-10 13:01:21 -05:00
Bill Burke cd299c995b refactor cache 2016-03-10 13:01:20 -05:00
helio-frota 2ab8f320c3 minor update javascript adapter docs 2016-03-10 13:01:19 -05:00
Stian Thorgersen 36f2febde1 Next is 2.0.0.CR1 2016-03-10 13:01:18 -05:00
Stian Thorgersen dbc49dd742 Revert "Updated docs for KEYCLOAK-1020"
This reverts commit 6fe3a3da71.
2016-03-10 13:01:16 -05:00
Stian Thorgersen 55e9f2e21b Allow ignoring patterns in LogChecker 2016-03-10 13:01:16 -05:00
Bruno Oliveira dd3e6b29bf Let the admin manage her own account 2016-03-10 13:01:15 -05:00
Vlasta Ramik 81f1baff33 KEYCLOAK-2586 - fix URL providers on classpath for graphene 2.1.0.Aplha3 2016-03-10 13:01:14 -05:00
mposolda e3f24f58df Fix failing test 2016-03-10 13:01:13 -05:00
mposolda 1939f25a71 KEYCLOAK-2601 Fix incorrectly autodetected dialect with MSSQL2014 2016-03-10 13:01:12 -05:00
Stian Thorgersen 76df229967 Next is 1.9.2.Final 2016-03-10 13:01:10 -05:00
mposolda 3ce6deaa1b Log DB info in arquillian testsuite 2016-03-10 13:01:09 -05:00
mposolda 428b85f1f8 Disable DBLockTest for now 2016-03-10 13:01:08 -05:00
mposolda 89a1141f8d Added exclusion of old commons-io dependency as it's causing issues in some environments 2016-03-10 13:01:07 -05:00
mposolda 12e5dfa3e5 Fix DB2 2016-03-10 13:01:06 -05:00
mposolda 4ff4f69343 KEYCLOAK-2611 Keycloak fails to start with Oracle DB 2016-03-10 13:01:05 -05:00
Stian Thorgersen 06545f2543 KEYCLOAK-2596 Fix import with dir and ignore existing 2016-03-10 13:01:04 -05:00
Marek Baluch 9e836162b7 KPR-87 - Agreement on terms and conditions as part of authentication - Tests 2016-03-10 13:01:03 -05:00
mposolda 42f4e7fef8 KEYCLOAK-2583 Synchronize users after creating ldap federation provider 2016-03-10 13:01:02 -05:00
mposolda 0708bceea7 KEYCLOAK-2582 Wrong message after synchronization (removing user from ldap) 2016-03-10 13:01:01 -05:00
Dane Barentine f72b0f3f6d Use createCredential so that authentication will work with both 2.x and 3.x MongoDB servers 2016-03-10 13:01:00 -05:00
Tomas Kyjovsky a27fd7ae1f Added workaround for KEYCLOAK-2560 to jpa-performance tests.
Optional delete/reimport realm phases.
2016-03-10 13:00:59 -05:00
mhajas 768a3ab941 IPv6 in login events 2016-03-10 13:00:58 -05:00
mhajas 5790dd44a4 Make adapter tests run also on EAP6 and EAP7 2016-03-10 13:00:57 -05:00
Farana, Zdenek 3b44ebb6d9 Updated docs for KEYCLOAK-1020 2016-03-10 13:00:56 -05:00
mhajas d2b5cf08c6 IdpInitiated login unauthorized test 2016-03-10 13:00:55 -05:00
mposolda f8ec178fae KEYCLOAK-2529 More proper handling of DB errors during migration 2016-03-10 13:00:54 -05:00
mposolda 062c8a06ab Fix testsuite with mongo 2016-03-10 13:00:53 -05:00
mposolda 6a48e00039 Check performance of multiple get calls over cluster 2016-03-10 13:00:52 -05:00
mposolda 6d0e5d6ad1 KEYCLOAK-2529 Concurrent startup by more cluster nodes at the same time. Added DBLockProvider 2016-03-10 13:00:51 -05:00
Stian Thorgersen 001ae5146a KEYCLOAK-2605 Revert upgrade of Arquillian Graphene 2016-03-10 13:00:50 -05:00
Stan Silvert 23175bf925 Make imports in ServerInfoAdminResource explicitly point to the new
packages.
2016-03-10 13:00:49 -05:00
Stan Silvert cf10a09008 KEYCLOAK-2535: ClientResource endpoint tests 2016-03-10 13:00:48 -05:00
Bruno Oliveira 8a4a1660a4 Client registration won't compile without these changes 2016-03-10 13:00:47 -05:00
Stian Thorgersen 4e0e4df630 KEYCLOAK-2592 Set secure on OAuth_Token_Request_State cookie 2016-03-10 13:00:46 -05:00
Stian Thorgersen 0519f0fed5 KEYCLOAK-2592 Set http-only on OAuth_Token_Request_State cookie 2016-03-10 13:00:45 -05:00
Stian Thorgersen 36f64b2e23 Merge pull request #2358 from helio-frota/minor_update_docs
minor update javascript adapter docs
2016-03-10 13:50:24 +01:00
helio-frota 94a2c3ab0e minor update javascript adapter docs 2016-03-10 09:16:45 -03:00
Stian Thorgersen 28fe13a800 Next is 2.0.0.CR1 2016-03-10 08:13:00 +01:00
Stian Thorgersen b9fea7b143 Merge pull request #2357 from stianst/master
Fixes
2016-03-10 08:08:09 +01:00
Stian Thorgersen ae63830c22 Merge pull request #2355 from abstractj/KEYCLOAK-2633
Let the admin manage her own account
2016-03-10 07:30:49 +01:00
Stian Thorgersen 96967c0373 Merge pull request #2354 from vramik/KEYCLOAK-2586
KEYCLOAK-2586 - fix URL providers on classpath for graphene 2.1.0.Aplha3
2016-03-10 07:30:26 +01:00
Stian Thorgersen 6e0eb21428 Merge pull request #2352 from mposolda/master
KEYCLOAK-2601 Fix incorrectly autodetected dialect with MSSQL2014
2016-03-10 07:29:28 +01:00
Stian Thorgersen e295efed07 Revert "Updated docs for KEYCLOAK-1020"
This reverts commit 6fe3a3da71.
2016-03-10 07:28:45 +01:00
Stian Thorgersen cd2f6e83b3 Allow ignoring patterns in LogChecker 2016-03-10 07:28:45 +01:00
Stian Thorgersen d722e53108 Next is 1.9.2.Final 2016-03-10 07:28:27 +01:00
mposolda 28252e2409 Fix failing test 2016-03-09 16:49:01 +01:00
Bruno Oliveira 746d285c7b Let the admin manage her own account 2016-03-09 12:16:21 -03:00
Vlasta Ramik 32b29bb130 KEYCLOAK-2586 - fix URL providers on classpath for graphene 2.1.0.Aplha3 2016-03-09 13:58:07 +01:00
mposolda 583f8ad739 KEYCLOAK-2601 Fix incorrectly autodetected dialect with MSSQL2014 2016-03-09 11:56:31 +01:00
Stian Thorgersen 321b23a78d Merge pull request #2349 from mposolda/master
Log DB info in arquillian testsuite
2016-03-09 06:13:40 +01:00
mposolda bcace1eacf Log DB info in arquillian testsuite 2016-03-08 22:04:25 +01:00
Marek Posolda dad4945358 Merge pull request #2347 from mposolda/master
Disable DBLockTest for now
2016-03-08 17:57:13 +01:00
mposolda f914a30b6e Disable DBLockTest for now 2016-03-08 17:44:03 +01:00
Marek Posolda d65fb963e6 Merge pull request #2346 from mposolda/master
Added exclusion of old commons-io dependency as it's causing issues i…
2016-03-08 17:42:51 +01:00
mposolda 5772ea2b09 Added exclusion of old commons-io dependency as it's causing issues in some environments 2016-03-08 17:01:48 +01:00
Marek Posolda 620f22249a Merge pull request #2345 from mposolda/master
Fix DB2
2016-03-08 16:06:57 +01:00
mposolda 29052019c5 Fix DB2 2016-03-08 16:05:45 +01:00
Marek Posolda c17b70e454 Merge pull request #2344 from mposolda/master
KEYCLOAK-2611 Keycloak fails to start with Oracle DB
2016-03-08 14:35:43 +01:00
Stian Thorgersen 1199fa7f6d Merge pull request #2343 from stianst/KEYCLOAK-2596
KEYCLOAK-2596 Fix import with dir and ignore existing
2016-03-08 13:50:57 +01:00
Stian Thorgersen 4928f779f7 Merge pull request #2329 from mbaluch/master
KPR-87 - Agreement on terms and conditions as part of authentication …
2016-03-08 13:50:49 +01:00
mposolda 8371c256b2 KEYCLOAK-2611 Keycloak fails to start with Oracle DB 2016-03-08 13:49:19 +01:00
Marek Baluch fa0335613f KPR-87 - Agreement on terms and conditions as part of authentication - Tests 2016-03-08 10:32:25 +01:00
Stian Thorgersen dc1d0e7f44 KEYCLOAK-2596 Fix import with dir and ignore existing 2016-03-08 08:55:10 +01:00
Marek Posolda 229eca302f Merge pull request #2342 from mposolda/master
LDAP fixes
2016-03-08 08:46:28 +01:00
Stian Thorgersen 446c9fea4b Merge pull request #2340 from dbarentine/master
KEYCLOAK-2609 Use createCredential so that authentication will work with both 2.x a…
2016-03-08 07:54:46 +01:00
Stian Thorgersen 1d882cdb87 Merge pull request #2339 from tkyjovsk/jpa-performance
Added workaround for KEYCLOAK-2560 to jpa-performance tests.
2016-03-08 07:53:41 +01:00
Stian Thorgersen bdc5f1c185 Merge pull request #2335 from mhajas/master
Run adapter tests on EAP6/7 + test fixes
2016-03-08 07:53:11 +01:00
Stian Thorgersen 7b578b8c87 Merge pull request #2336 from byF/master
Updated docs for KEYCLOAK-1020
2016-03-08 07:52:40 +01:00
Stian Thorgersen 37f605de5b Merge pull request #2333 from mhajas/newSAMLTest
IdpInitiated login unauthorized test
2016-03-08 07:51:49 +01:00
mposolda 8d21cfc234 KEYCLOAK-2583 Synchronize users after creating ldap federation provider 2016-03-07 23:19:43 +01:00
mposolda df56265976 KEYCLOAK-2582 Wrong message after synchronization (removing user from ldap) 2016-03-07 23:19:43 +01:00
Dane Barentine 7be0b1c9f5 Use createCredential so that authentication will work with both 2.x and 3.x MongoDB servers 2016-03-07 10:14:00 -08:00
Tomas Kyjovsky 52f3693747 Added workaround for KEYCLOAK-2560 to jpa-performance tests.
Optional delete/reimport realm phases.
2016-03-07 18:10:12 +01:00
Marek Posolda 392b1f1e17 Merge pull request #2337 from mposolda/dblock2
KEYCLOAK-2529 More proper handling of DB errors during migration
2016-03-07 16:06:49 +01:00
mposolda ebb61c104b KEYCLOAK-2529 More proper handling of DB errors during migration 2016-03-07 15:19:12 +01:00
Farana, Zdenek 6fe3a3da71 Updated docs for KEYCLOAK-1020 2016-03-07 14:48:32 +01:00
Marek Posolda f597f163f7 Merge pull request #2334 from mposolda/dblock2
Fix testsuite with Mongo
2016-03-07 13:15:31 +01:00
mposolda 1ac0529d04 Fix testsuite with mongo 2016-03-07 12:21:43 +01:00
mposolda 3c60881d8c Check performance of multiple get calls over cluster 2016-03-07 12:21:43 +01:00
Marek Posolda 74ac00349e Merge pull request #2332 from mposolda/dblock2
KEYCLOAK-2529 Concurrent startup by more cluster nodes at the same ti…
2016-03-07 11:47:53 +01:00
mhajas 048c64b6bd IdpInitiated login unauthorized test 2016-03-07 11:23:36 +01:00
mhajas 5917d5885b Merge remote-tracking branch 'upstream/master' 2016-03-07 11:21:24 +01:00
mposolda 8da768a514 KEYCLOAK-2529 Concurrent startup by more cluster nodes at the same time. Added DBLockProvider 2016-03-07 10:34:30 +01:00
Stian Thorgersen ad63b18781 Merge pull request #2330 from stianst/KEYCLOAK-2605
KEYCLOAK-2605 Revert upgrade of Arquillian Graphene
2016-03-07 09:19:53 +01:00
Stian Thorgersen 95d5ce9dd4 KEYCLOAK-2605 Revert upgrade of Arquillian Graphene 2016-03-07 08:38:39 +01:00
Stian Thorgersen 56c3d53a24 Merge pull request #2324 from ssilvert/client-tests
KEYCLOAK-2535: ClientResource endpoint tests
2016-03-07 06:13:55 +01:00
Stian Thorgersen c91255f620 Merge pull request #2328 from abstractj/reg-cli-minor-fix
Client registration won't compile without these changes
2016-03-07 06:12:43 +01:00
Stian Thorgersen 4f047565fb Merge pull request #2326 from stianst/KEYCLOAK-2592
Keycloak 2592
2016-03-07 06:12:17 +01:00
Stan Silvert f65a053182 Make imports in ServerInfoAdminResource explicitly point to the new
packages.
2016-03-04 11:17:12 -05:00
Bill Burke b709ca96b1 Merge pull request #2327 from patriot1burke/master
cleanup cache
2016-03-04 11:08:50 -05:00
Bruno Oliveira 4a027d97b0 Client registration won't compile without these changes 2016-03-04 12:46:57 -03:00
Bill Burke 4be6dc2f0c cleanup cache 2016-03-04 10:30:48 -05:00
Stian Thorgersen 57b6ddbace KEYCLOAK-2592 Set secure on OAuth_Token_Request_State cookie 2016-03-04 14:22:48 +01:00
Stian Thorgersen bf38ec040f KEYCLOAK-2592 Set http-only on OAuth_Token_Request_State cookie 2016-03-04 13:43:00 +01:00
Stan Silvert 2c79456e72 KEYCLOAK-2535: ClientResource endpoint tests 2016-03-04 07:41:24 -05:00
Stian Thorgersen 8caad0118c Merge pull request #2322 from vramik/KEYCLOAK-2586
KEYCLOAK-2586 - Update arquillian component versions to make screensh…
2016-03-04 08:22:47 +01:00
Stian Thorgersen afdbdb285d Merge pull request #2323 from abstractj/KEYCLOAK-2585
KEYCLOAK-2585: Changes on Brute force messages
2016-03-04 08:18:16 +01:00
Bill Burke ad2638cc20 Merge pull request #2325 from jblashka/master
Increase CERTIFICATE column size
2016-03-03 20:26:43 -05:00
Jared Blashka 05c590ac88 Increase CERTIFICATE column size 2016-03-03 17:35:40 -05:00
Bruno Oliveira 8d6f71e7d1 KEYCLOAK-2585: Changes on Brute force messages 2016-03-03 10:11:03 -03:00
Vlasta Ramik 10e1b6206f KEYCLOAK-2586 - Update arquillian component versions to make screenshooter working 2016-03-03 13:39:10 +01:00
Marek Posolda 002074bb30 Merge pull request #2320 from mposolda/master
KEYCLOAK-2523 Fix concurrency tests with all databases by track trans…
2016-03-03 12:34:29 +01:00
Stian Thorgersen 375d4e9e83 Merge pull request #2321 from stianst/KEYCLOAK-2547
KEYCLOAK-2547 NPE in TokenEndpoint and InfinispanUserSessionProvider
2016-03-03 12:06:40 +01:00
mposolda 286de3e905 Fix failing test 2016-03-03 11:46:27 +01:00
mposolda a258dd51ee KEYCLOAK-2523 Fix concurrency tests with all databases by track transaction startup revision 2016-03-03 11:21:26 +01:00
Stian Thorgersen b4239c40c1 KEYCLOAK-2547 NPE in TokenEndpoint and InfinispanUserSessionProvider 2016-03-03 10:45:05 +01:00
Stian Thorgersen b6118a6705 Merge pull request #2319 from stianst/KEYCLOAK-2580
KEYCLOAK-2580 Failed to create execution flow
2016-03-03 10:33:42 +01:00
Stian Thorgersen 2bf3531c43 Merge pull request #2318 from stianst/KEYCLOAK-2577
KEYCLOAK-2577 Rollback session in KeycloakSessionServletFilter if not…
2016-03-03 10:33:29 +01:00
Stian Thorgersen 2d42ad9993 KEYCLOAK-2580 Failed to create execution flow 2016-03-03 09:18:48 +01:00
Stian Thorgersen 2edb7f6831 KEYCLOAK-2577 Rollback session in KeycloakSessionServletFilter if not committed by KeycloakTransactionCommitter 2016-03-03 08:59:19 +01:00
Stian Thorgersen 402feb9710 Merge pull request #2317 from stianst/KEYCLOAK-2576
KEYCLOAK-2576
2016-03-03 07:48:43 +01:00
Stian Thorgersen 13506bec82 Merge pull request #2316 from stianst/KEYCLOAK-2568
KEYCLOAK-2568 Add autocomplete=off to password and otp input fields
2016-03-03 07:28:25 +01:00
Stian Thorgersen 13b6c6f507 KEYCLOAK-2576 KEYCLOAK-2576
Changing locale on login screen doesn't affect current user
2016-03-03 07:06:10 +01:00
Stian Thorgersen 7b8869bde6 Removed english values from non-english messages bundles£ 2016-03-03 06:53:00 +01:00
Stian Thorgersen e4815cd103 Merge pull request #2314 from mstruk/admin-client
KEYCLOAK-2574 Add more admin-client authentication tests
2016-03-03 06:30:48 +01:00
Stian Thorgersen 4214793a2d KEYCLOAK-2568 Add autocomplete=off to password and otp input fields 2016-03-03 06:29:56 +01:00
Bill Burke 860b58552e Merge pull request #2315 from patriot1burke/master
concurrent transaction fix
2016-03-02 17:43:33 -05:00
Bill Burke a13bac4c9d concurrent transaction fix 2016-03-02 16:55:55 -05:00
Marko Strukelj c6fc7622d2 KEYCLOAK-2574 Add more admin-client authentication tests 2016-03-02 15:12:32 +01:00
Stian Thorgersen c584a1a161 Merge pull request #2313 from abstractj/documentation_updates
Inclusion of add user instructions for overlay
2016-03-02 14:52:54 +01:00
Bruno Oliveira b8c50c431c Inclusion of add user instructions for overlay 2016-03-02 10:14:41 -03:00
Stian Thorgersen cc776abacb Merge pull request #2311 from stianst/KEYCLOAK-2557
KEYCLOAK-2557
2016-03-02 08:50:55 +01:00
Stian Thorgersen fea5d5099d Merge pull request #2310 from stianst/KEYCLOAK-2570
KEYCLOAK-2570
2016-03-02 08:50:23 +01:00
Marek Posolda 95e1dedb32 Merge pull request #2306 from mposolda/mysql-concurrency
Added ConcurrentTransactionsTest
2016-03-02 08:14:40 +01:00
Stian Thorgersen 370b86141c KEYCLOAK-2557
Cannot login with email if another user is using this email as username
2016-03-02 08:08:48 +01:00
Stian Thorgersen 45b940ad2d Merge pull request #2308 from tkyjovsk/auth-server-eap7-cluster
KEYCLOAK-1679 Auth server eap7 cluster
2016-03-02 07:54:24 +01:00
Stian Thorgersen 8c3545d219 KEYCLOAK-2570
Login event error field typo (lower case)
2016-03-02 07:52:04 +01:00
Stian Thorgersen 2f3a1626d7 Merge pull request #2309 from tkyjovsk/console-ui-tests
KEYCLOAK-2570 disabled failing test
2016-03-02 07:26:45 +01:00
Stian Thorgersen 5d93f4a298 Merge pull request #2307 from stianst/KEYCLOAK-2566
KEYCLOAK-2566 kc-action-cell action buttons don't appear on IE
2016-03-02 07:04:42 +01:00
Tomas Kyjovsky 66a75d93ee KEYCLOAK-2570 disabled failing test 2016-03-01 23:08:19 +01:00
Tomas Kyjovsky e107a403cf Fixed & enabled SessionFailoverClusterTest by default 2016-03-01 21:44:46 +01:00
Stian Thorgersen 8270c0a19a KEYCLOAK-2566 kc-action-cell action buttons don't appear on IE 2016-03-01 19:58:11 +01:00
Stian Thorgersen db5efdca64 Merge pull request #2304 from stianst/KEYCLOAK-2513
KEYCLOAK-2513 Add test for direct grant with OTP
2016-03-01 19:33:45 +01:00
Stian Thorgersen 5eb319f3c5 Merge pull request #2303 from tkyjovsk/auth-server-jdk
Added property "auth.server.java.home" to the Arquillian testsuite.
2016-03-01 19:33:35 +01:00
Stian Thorgersen 6baa4a7950 Merge pull request #2302 from stianst/KEYCLOAK-2567
KEYCLOAK-2567 Order required actions alphabetically
2016-03-01 19:32:35 +01:00
Tomas Kyjovsky 73b6751219 KEYCLOAK-1679 added cluster profile for eap7 2016-03-01 16:13:12 +01:00
Tomas Kyjovsky c0de43d51f KEYCLOAK-1678 added cluster config to the EAP7 test server module 2016-03-01 16:12:59 +01:00
mposolda 5d9966f6df Ignore ConcurrentTransactionsTest as it's currently failing 2016-03-01 13:52:59 +01:00
mposolda 893fb2a55b Added ConcurrentTransactionsTest 2016-03-01 13:39:03 +01:00
Marek Posolda 4add134dff Merge pull request #2305 from mposolda/master
KEYCLOAK-2542 User can't set password for account created over social…
2016-03-01 11:54:52 +01:00
mhajas 7dc228beca IPv6 in login events 2016-03-01 11:42:16 +01:00
mposolda e6e367392a KEYCLOAK-2542 Fix tests 2016-03-01 10:52:35 +01:00
mposolda 0768bcc452 KEYCLOAK-2542 User can't set password for account created over social login if UserFedarationProvider used 2016-03-01 10:13:21 +01:00
Stian Thorgersen 4f8669d668 KEYCLOAK-2513 Add test for direct grant with OTP 2016-03-01 09:05:02 +01:00
Tomas Kyjovsky c65ed96bd7 Added property "auth.server.java.home" to the Arquillian testsuite. 2016-03-01 08:46:17 +01:00
Stian Thorgersen 7ad8a6e074 KEYCLOAK-2567 Order required actions alphabetically 2016-03-01 08:41:35 +01:00
Stian Thorgersen 2bddd9ad34 Merge pull request #2297 from tkyjovsk/console-ui-tests
Fixed admin console tests' compilation errors.
2016-03-01 08:00:46 +01:00
Stian Thorgersen ff9ebb0f79 Merge pull request #2294 from vramik/KEYCLOAK-2565
KEYCLOAK-2565 - Add assert check to testsuite for KEYCLOAK-2554 and ...
2016-03-01 08:00:23 +01:00
Bill Burke 09133a9e2a Merge pull request #2301 from patriot1burke/master
KEYCLOAK-2510
2016-02-29 20:51:34 -05:00
Bill Burke 32d15e2027 KEYCLOAK-2510 2016-02-29 20:39:44 -05:00
Bill Burke 8aa0727d88 Merge pull request #2300 from patriot1burke/master
KEYCLOAK-2536
2016-02-29 20:08:19 -05:00
Bill Burke c0d0c1f39a fix 2016-02-29 16:48:28 -05:00
Bill Burke 64daa568b9 KEYCLOAK-2536 2016-02-29 16:05:43 -05:00
Marek Posolda 47652ae179 Merge pull request #2298 from mposolda/master
KEYCLOAK-1928 Fix Saml with IBM JDK
2016-02-29 20:57:55 +01:00
mposolda e2558ca827 KEYCLOAK-1928 Fix Saml with IBM JDK 2016-02-29 17:32:33 +01:00
mhajas 5fb7e8186f Make adapter tests run also on EAP6 and EAP7 2016-02-29 17:23:27 +01:00
Tomas Kyjovsky e66060b00b Fixed admin console tests' compilation errors. 2016-02-29 17:13:08 +01:00
Bill Burke 84de9cca8e Merge pull request #2295 from patriot1burke/master
unsecure url has principal
2016-02-29 10:54:19 -05:00
Bill Burke 37584a24e0 unsecure url has principal
KEYCLOAK-2550
Typo in userguide

KEYCLOAK-1928 Kerberos working with IBM JDK

KEYCLOAK-1928 Remove sun.jdk.jgss module

KEYCLOAK-1928 Fix kerberos with adapter on JDK7

KPR-147 - Initial login scenarios around admin password - test

KEYCLOAK-2561 Fix issues with blank password

KEYCLOAK-2559 Missing add/remove button for 'Valid Redirect URIs' in a client settings form

Added simple test for JPA performance (with many users).

Fixed "re-import" operation logging.

Fixed for Timer.saveData()

Fixed for Timer.saveData()

ManyUsersTest: ArrayList --> LinkedList

Fix AbstractUserTest

Fix parentheses in login page object

Add tests for IDP initiated login

KEYCLOAK-1040
Allow import of realm keys (like we do for SAML)

KEYCLOAK-2556 Remove required for client create root url and saml endpoint

KEYCLOAK-2555 ForbiddenException when importing test realm or creating test user

KEYCLOAK-2553
Unexpected form behavior while creating a client

KEYCLOAK-2551
Broken navigation links while creating/editing a Client Mapper
2016-02-29 09:30:28 -05:00
Vlasta Ramik cfc61fa262 KEYCLOAK-2565 - Add assert check to testsuite for KEYCLOAK-2554 and KEYCLOAK-2555 2016-02-29 15:08:19 +01:00
Stian Thorgersen 4286f0560f Merge pull request #2293 from stianst/KEYCLOAK-2551
KEYCLOAK-2551
2016-02-29 14:06:46 +01:00
Stian Thorgersen 116d147bf7 Merge pull request #2292 from stianst/KEYCLOAK-2553
KEYCLOAK-2553
2016-02-29 14:06:13 +01:00
Stian Thorgersen a71adde8fa KEYCLOAK-2551
Broken navigation links while creating/editing a Client Mapper
2016-02-29 12:25:36 +01:00
Stian Thorgersen 45a03a654f KEYCLOAK-2553
Unexpected form behavior while creating a client
2016-02-29 12:05:20 +01:00
Stian Thorgersen 2154dd120b Merge pull request #2291 from stianst/KEYCLOAK-2555
KEYCLOAK-2555 ForbiddenException when importing test realm or creatin…
2016-02-29 12:00:44 +01:00
Stian Thorgersen 2a4dfe7920 Merge pull request #2290 from stianst/KEYCLOAK-2556
KEYCLOAK-2556 Remove required for client create root url and saml end…
2016-02-29 12:00:00 +01:00
Stian Thorgersen 5556736968 Merge pull request #2289 from stianst/KEYCLOAK-1040
KEYCLOAK-1040
2016-02-29 11:59:42 +01:00
Stian Thorgersen 24336bcd4d Merge pull request #2286 from mhajas/newSAMLTest
KEYCLOAK-2563 Add test for IDP initiated login
2016-02-29 11:59:35 +01:00
Stian Thorgersen 6fae1c6411 Merge pull request #2285 from mhajas/fixSAMLTest
Fix parentheses in login page object
2016-02-29 11:59:20 +01:00
Stian Thorgersen d7641f8830 Merge pull request #2282 from tkyjovsk/jpa-performance
Added some jpa perf tests (adding/removing many users)
2016-02-29 11:58:09 +01:00
Stian Thorgersen 24328fdc47 KEYCLOAK-2555 ForbiddenException when importing test realm or creating test user 2016-02-29 10:09:06 +01:00
Stian Thorgersen 4f46ab45cc KEYCLOAK-2556 Remove required for client create root url and saml endpoint 2016-02-29 09:48:15 +01:00
Stian Thorgersen ccfae82b77 KEYCLOAK-1040
Allow import of realm keys (like we do for SAML)
2016-02-29 09:35:08 +01:00
Stian Thorgersen 711e6a54ca Merge pull request #2283 from stianst/KEYCLOAK-2559
KEYCLOAK-2559 Missing add/remove button for 'Valid Redirect URIs' in …
2016-02-29 09:34:59 +01:00
Bill Burke 1d8f3d8702 Merge pull request #2288 from patriot1burke/master
clustered cache fixes
2016-02-26 18:22:38 -05:00
Bill Burke a0696fcb97 clustered testing 2016-02-26 16:45:58 -05:00
Bill Burke abddbfb3a4 clustered testing 2016-02-26 15:39:22 -05:00
Marek Posolda a97c4bdff9 Merge pull request #2287 from mposolda/master
KEYCLOAK-2561 Fix issues with blank password
2016-02-26 21:25:41 +01:00
mposolda e7a5b88b2d KEYCLOAK-2561 Fix issues with blank password 2016-02-26 18:14:37 +01:00
mhajas 4f0609f8b2 Add tests for IDP initiated login 2016-02-26 16:55:12 +01:00
mhajas e4d056f54b Fix parentheses in login page object 2016-02-26 16:50:00 +01:00
Tomas Kyjovsky a3f7339fca Fix AbstractUserTest 2016-02-26 14:57:28 +01:00
Vaclav Muzikar 2d7424c697 Add support for testing default theme name in prop file 2016-02-26 13:59:28 +01:00
Stian Thorgersen 57cd7e132c KEYCLOAK-2559 Missing add/remove button for 'Valid Redirect URIs' in a client settings form 2016-02-26 13:53:27 +01:00
Stian Thorgersen d766c56eba Merge pull request #2278 from mbaluch/master
KPR-147 - Initial login scenarios around admin password - test
2016-02-26 13:46:52 +01:00
Tomas Kyjovsky 0fa2b5c25d ManyUsersTest: ArrayList --> LinkedList 2016-02-26 12:34:39 +01:00
Vaclav Muzikar ddc0792733 Merge branch 'master' of https://github.com/keycloak/keycloak 2016-02-26 12:25:47 +01:00
Marek Baluch 072fe0d8a0 KPR-147 - Initial login scenarios around admin password - test 2016-02-26 12:21:51 +01:00
Marek Posolda 2ec355e2d2 Merge pull request #2281 from mposolda/master
KEYCLOAK-1928 Fix kerberos with adapter on JDK7
2016-02-26 11:36:04 +01:00
mposolda 94b3e85513 KEYCLOAK-1928 Fix kerberos with adapter on JDK7 2016-02-26 10:49:10 +01:00
Marek Posolda 4abcb2761f Merge pull request #2280 from mposolda/master
KEYCLOAK-1928 Kerberos working with IBM JDK
2016-02-26 10:13:14 +01:00
mposolda aae550a7c7 KEYCLOAK-1928 Remove sun.jdk.jgss module 2016-02-26 09:16:39 +01:00
mposolda 7f32ce810a KEYCLOAK-1928 Kerberos working with IBM JDK 2016-02-26 09:16:39 +01:00
Stian Thorgersen 13acd512b6 Merge pull request #2279 from stianst/master
KEYCLOAK-2550
2016-02-26 07:54:18 +01:00
Stian Thorgersen b94ced2204 KEYCLOAK-2550
Typo in userguide
2016-02-26 07:53:38 +01:00
Tomas Kyjovsky c59123e974 Fixed for Timer.saveData() 2016-02-26 03:21:15 +01:00
Tomas Kyjovsky ff2c100664 Fixed for Timer.saveData() 2016-02-26 03:20:57 +01:00
Tomas Kyjovsky 41949b63f6 Fixed "re-import" operation logging. 2016-02-26 02:31:51 +01:00
Tomas Kyjovsky aea35454bf Added simple test for JPA performance (with many users). 2016-02-26 02:24:20 +01:00
Vaclav Muzikar cd063c6a36 Add LDAP vendors test 2016-02-25 17:52:11 +01:00
Vaclav Muzikar a35aa47f27 Add support for some test constants in props file 2016-02-25 17:51:38 +01:00
Stian Thorgersen 25d183c1d9 Merge pull request #2277 from pedroigor/KEYCLOAK-2471
Updating xmlsec to 2.0.5
2016-02-25 16:28:56 +01:00
Pedro Igor 3b8364f1e6 Updating xmlsec to 2.0.5 2016-02-25 11:43:00 -03:00
Stian Thorgersen ca81f3f18d Merge pull request #2275 from stianst/KEYCLOAK-2511
KEYCLOAK-2511 Rename session-state in access token response to sessio…
2016-02-25 12:03:37 +01:00
Stian Thorgersen 6df72d67c5 Merge pull request #2274 from stianst/KEYCLOAK-2500
KEYCLOAK-2500 Add cors headers to .well-known endpoints
2016-02-25 12:03:25 +01:00
Stian Thorgersen f6c7ecf8e3 Merge pull request #2273 from stianst/KEYCLOAK-2522
KEYCLOAK-2522 master realm admin can't use client registration api
2016-02-25 12:03:07 +01:00
Stian Thorgersen d723efae77 Merge pull request #2276 from msavy/keycloak-update-docs
Update docs for move of themes and providers directories
2016-02-25 10:56:26 +01:00
Marc Savy b7f4d52de1 Update docs for change of themes and providers directories to reflect 1.9.x refactoring. 2016-02-25 09:50:11 +00:00
Stian Thorgersen 3ca39801dc KEYCLOAK-2511 Rename session-state in access token response to session_state 2016-02-25 10:14:12 +01:00
Stian Thorgersen da8f2dc2ce KEYCLOAK-2500 Add cors headers to .well-known endpoints 2016-02-25 10:05:46 +01:00
Stian Thorgersen 2fce06ffca KEYCLOAK-2522 master realm admin can't use client registration api 2016-02-25 09:54:34 +01:00
Stian Thorgersen 14ea988b24 Merge pull request #2267 from ssilvert/client-tests
KEYCLOAK-2533: Test values of events in LoginEventsTest
2016-02-25 08:50:09 +01:00
Bill Burke 5723baa367 Merge pull request #2272 from patriot1burke/master
group list caching
2016-02-24 18:31:25 -05:00
Bill Burke 450ce0e0e0 oops, showSql=false 2016-02-24 17:46:30 -05:00
Bill Burke 17ea3fca0b Merge remote-tracking branch 'upstream/master' 2016-02-24 17:21:25 -05:00
Bill Burke f10f00ba71 group list caching 2016-02-24 17:21:11 -05:00
Stian Thorgersen 8c73f8743d Merge pull request #2269 from stianst/KEYCLOAK-2539
KEYCLOAK-2539
2016-02-24 16:15:50 +01:00
Stian Thorgersen ab96114ef8 KEYCLOAK-2539
Migration fails if DisplayNameHtml is null for master realm
2016-02-24 06:59:32 +01:00
Bill Burke c45e40db99 Merge pull request #2268 from patriot1burke/master
query caches
2016-02-23 15:10:58 -05:00
Bill Burke 9488787986 Merge remote-tracking branch 'upstream/master' 2016-02-23 14:36:30 -05:00
Stan Silvert 64b2aed370 KEYCLOAK-2533: Test values of events in LoginEventsTest. Also do the same
for AdminEventTest.
2016-02-23 14:20:35 -05:00
Stian Thorgersen f63bb66170 Merge pull request #2266 from stianst/master
Added wallpaper svg
2016-02-23 20:09:04 +01:00
Stian Thorgersen 1957103270 Added wallpaper svg 2016-02-23 20:08:43 +01:00
Stan Silvert 3383b044b2 KEYCLOAK-2316: Sync admin client with endpoints for Client. First commit. 2016-02-23 13:29:12 -05:00
Stian Thorgersen f34260478e Merge pull request #2263 from vmuzikar/master
[KEYCLOAK-2532] Fix Console UI tests
2016-02-23 19:25:05 +01:00
Stian Thorgersen 4cf26a68fc Merge pull request #2264 from stianst/master
KEYCLOAK-2530
2016-02-23 19:24:30 +01:00
Stian Thorgersen 2c16335a03 Updated examples with moved themes directory 2016-02-23 15:30:50 +01:00
Stian Thorgersen af26b5b610 KEYCLOAK-2530
Missing IP address in Login Events
2016-02-23 14:33:30 +01:00
Stian Thorgersen eacd689f91 Merge pull request #2262 from stianst/master
KEYCLOAK-2527
2016-02-23 14:15:25 +01:00
Stian Thorgersen 023b558f43 KEYCLOAK-2527
Cordova not working
2016-02-23 13:32:00 +01:00
Vaclav Muzikar 8601b321d5 Fix InternationalizationTest 2016-02-23 13:22:56 +01:00
Vaclav Muzikar 83181f28b2 Swap 'expected' and 'actual' in URLAssert 2016-02-23 13:13:22 +01:00
Vaclav Muzikar 77c16c320e Fix LdapUserFederationTest 2016-02-23 12:58:39 +01:00
Vaclav Muzikar a6458250bc Merge branch 'master' of https://github.com/keycloak/keycloak 2016-02-23 12:11:17 +01:00
Marek Posolda 6654a154b9 Merge pull request #2259 from mposolda/master
Fix fuse adapter
2016-02-23 11:57:21 +01:00
mposolda 4d82cc92fe Fix fuse adapter 2016-02-23 11:19:34 +01:00
Stian Thorgersen 3e1976b3e5 Merge pull request #2255 from stianst/master
Next is 1.9.1.Final-SNAPSHOT
2016-02-23 10:59:53 +01:00
Marek Posolda 695f8d34ab Merge pull request #2257 from mposolda/master
KEYCLOAK-2526 JPA migration from 1.8.1 doesn't work
2016-02-23 10:37:53 +01:00
mposolda ad753a50a3 KEYCLOAK-2526 JPA migration from 1.8.1 doesn't work 2016-02-23 10:01:40 +01:00
Stian Thorgersen 0fc9cb78d5 KEYCLOAK-2525
Built-in themes not loaded from modules
2016-02-23 09:51:22 +01:00
Stian Thorgersen ec9c9b8ee1 Remove old logo from sunrise theme example 2016-02-23 09:06:51 +01:00
Bruno Oliveira 5ac3443729 Admin client example fails after login 2016-02-23 08:51:17 +01:00
Bruno Oliveira fac8c4a6d0 Angular Product raises an exception on logout 2016-02-23 08:49:58 +01:00
Bruno Oliveira d7f4277ba8 Admin cannot manage her own profile at Customer Portal app 2016-02-23 08:49:13 +01:00
Stian Thorgersen a1d9753ec2 Next is 1.9.1.Final-SNAPSHOT 2016-02-23 08:48:26 +01:00
Bill Burke 599faa454b Merge remote-tracking branch 'upstream/master' 2016-02-22 17:17:01 -05:00
Bill Burke 4dcdaf4985 role cached queries 2016-02-22 17:16:35 -05:00
Marek Posolda 03215787e0 Merge pull request #2250 from mposolda/master
Fix SyncFederationTest to work with MSSQL and envs with slower databases
2016-02-22 12:05:19 +01:00
mposolda 838764ba5a Fix SyncFederationTest to work with MSSQL and envs with slower databases 2016-02-22 12:04:27 +01:00
Stian Thorgersen 4fd97091ff Version bump to 2.0.0.CR1-SNAPSHOT 2016-02-22 11:36:56 +01:00
Stian Thorgersen a444899176 Merge pull request #2249 from stianst/master
KEYCLOAK-2482
2016-02-22 09:40:24 +00:00
Stian Thorgersen d21a01280b KEYCLOAK-2482
Themes doesn't support patching
2016-02-22 10:01:42 +01:00
Stian Thorgersen 0840f39495 Merge pull request #2247 from vramik/KEYCLOAK-2502
Update test jvm memory settings
2016-02-22 08:03:32 +00:00
Stian Thorgersen 367f3256ea Merge pull request #2246 from mhajas/fixDemoExample
Fix DemoExampleAdapterTest
2016-02-22 08:03:27 +00:00
Stian Thorgersen 0e8c87e649 Merge pull request #2245 from mhajas/master
KEYCLOAK-2405 Add tests for mod_auth_mellon
2016-02-22 08:03:21 +00:00
Stian Thorgersen 10024f9526 Merge pull request #2243 from abstractj/KEYCLOAK-2501
KEYCLOAK-2501: Add-user should prompt user for password if not set
2016-02-22 08:02:33 +00:00
Stian Thorgersen 38ce5e069c Merge pull request #2237 from lkubik/restructurizeParents
Update parent poms structure
2016-02-22 08:01:58 +00:00
Bill Burke daa09f9a41 more fine tuning 2016-02-20 09:40:04 -05:00
Bill Burke 1511f7088f javadoc 2016-02-19 17:08:45 -05:00
Bill Burke 2e64d01251 reorg caching 2016-02-19 16:38:31 -05:00
Marek Posolda b991ba44d3 Merge pull request #2248 from mposolda/master
LDAP fixes
2016-02-19 22:05:56 +01:00
mposolda b8cf8fabe2 KEYCLOAK-2505 docs 2016-02-19 22:05:35 +01:00
Bill Burke c45524d8d4 caching 2016-02-19 15:44:19 -05:00
mposolda daca6d7062 KEYCLOAK-2505 Keystore configuration is not honored for LDAP over SSL connections 2016-02-19 18:02:39 +01:00
Vlasta Ramik 10e5205a57 Update test jvm memory settings 2016-02-19 15:29:27 +01:00
mposolda 706d4fc01c KEYCLOAK-2507 All LDAP special DN characters should be escaped in LDAPDn 2016-02-19 14:54:33 +01:00
Vaclav Muzikar d3769caaac Add wait for body to AbstractPage.navigateTo
(cherry picked from commit aba731b)
2016-02-19 13:35:31 +01:00
mhajas 0aa1b37e30 Fix DemoExampleAdapterTest 2016-02-19 13:24:28 +01:00
Vaclav Muzikar 3a138db842 Fix UserAttributesTest
(cherry picked from commit 7ac10b3)
2016-02-19 12:51:11 +01:00
Vaclav Muzikar b41dd22ed3 Fix DefaultRolesTest
(cherry picked from commit 6e7470d)
2016-02-19 12:50:52 +01:00
Vaclav Muzikar c34aa5763d Fix TokensTest
(cherry picked from commit 32e6bb0)
2016-02-19 12:50:34 +01:00
Vaclav Muzikar 02851989b3 Fix SecurityDefensesTest
(cherry picked from commit 1973f02)
2016-02-19 12:50:11 +01:00
Vaclav Muzikar 9bde0af0f1 Fix InternationalizationTest
(cherry picked from commit d58a575)
2016-02-19 12:49:47 +01:00
Vaclav Muzikar 8006c64dba Add Alert assert messages
(cherry picked from commit 9f847fa)
2016-02-19 12:48:10 +01:00
Vaclav Muzikar 4b5fee02cc Fix AbstractClientTest.createClient
(cherry picked from commit 5ab40b0)
2016-02-19 12:47:59 +01:00
Vaclav Muzikar 1569cf7fb5 Fix ClientScopeForm
(cherry picked from commit 7edd674)
2016-02-19 12:47:29 +01:00
Vaclav Muzikar 5a0711655a Fix ClientCredentialsForm
(cherry picked from commit 3e825bf)
2016-02-19 12:47:08 +01:00
Vaclav Muzikar b5660cbbab Fix LoginActions.feedbackText selector
(cherry picked from commit d05f809)
2016-02-19 12:45:52 +01:00
Vaclav Muzikar ec2cfba670 Fix LoginForm.registerLink
(cherry picked from commit 6414232)
2016-02-19 12:45:01 +01:00
Vaclav Muzikar 97d0f39346 Fix getFeedbackText()
(cherry picked from commit 131b99b)
2016-02-19 12:42:31 +01:00
Marek Posolda 7fc5afcc2f Merge pull request #2244 from mposolda/master
KEYCLOAK-2508 Possible NullPointerException during bigger load when r…
2016-02-19 12:29:17 +01:00
mhajas 2c1b13d6c2 Add tests for mod_auth_mellon 2016-02-19 11:53:19 +01:00
mposolda a441be57ed KEYCLOAK-2508 Possible NullPointerException during bigger load when removing UserSession 2016-02-19 11:49:30 +01:00
Bruno Oliveira 34a16f035a KEYCLOAK-2501: Add-user should prompt user for password if not set 2016-02-19 08:42:43 -02:00
Marek Posolda d5a57a2bbd Merge pull request #2242 from mposolda/master
KEYCLOAK-2479 Avoid ZIPException during bigger load
2016-02-18 21:49:51 +01:00
Bill Burke ed161d2426 Merge pull request #2238 from patriot1burke/master
KEYCLOAK-2477
2016-02-18 15:48:08 -05:00
mposolda 0f21b6f6d9 KEYCLOAK-2479 Avoid ZIPException during bigger load 2016-02-18 19:28:20 +01:00
Stian Thorgersen caec65c576 Merge pull request #2241 from mstruk/KEYCLOAK-2485
KEYCLOAK-2485 local description is missing in jboss as7/eap adapter
2016-02-18 16:58:11 +00:00
Stian Thorgersen ebb030c3bd Merge pull request #2240 from stianst/KEYCLOAK-2484
KEYCLOAK-2484
2016-02-18 16:57:22 +00:00
Stian Thorgersen f88908fa18 Merge pull request #2239 from mstruk/KEYCLOAK-2483
KEYCLOAK-2483 Modules are in wrong location
2016-02-18 15:55:58 +00:00
Marko Strukelj cb2aa547f9 KEYCLOAK-2485 local description is missing in jboss as7/eap adapter 2016-02-18 16:51:40 +01:00
Stian Thorgersen d386920b58 KEYCLOAK-2484
Update to new logo
2016-02-18 16:47:26 +01:00
Marko Strukelj 75d74890ca KEYCLOAK-2483 Modules are in wrong location 2016-02-18 15:41:57 +01:00
Bill Burke fd49213cb9 KEYCLOAK-2477 2016-02-17 17:02:14 -05:00
Bill Burke b20031faed Merge pull request #2228 from patriot1burke/master
make RealmModel unmodifiable collections
2016-02-17 16:58:49 -05:00
Bill Burke acf2d662c2 remove RealmModel.getClientNameMap() 2016-02-17 16:09:25 -05:00
Bill Burke 20348e5d0b remove RealmModel.getClientNameMap() 2016-02-17 16:05:25 -05:00
Bill Burke 3143a2e500 unmodifiable complete 2016-02-17 15:43:03 -05:00
Bill Burke d731189236 Merge remote-tracking branch 'upstream/master' 2016-02-17 14:57:38 -05:00
Lukas Kubik d22f4cb08c Update parent poms 2016-02-17 16:35:29 +00:00
Stian Thorgersen 98fe7c04a9 Merge pull request #2235 from pdrozd/KEYCLOAK-2498
KEYCLOAK-2498 - Fix assertion on page content.
2016-02-17 16:00:09 +00:00
Bill Burke 69c3d38164 Merge pull request #2236 from pedroigor/KEYCLOAK-2497
[KEYCLOAK-2497] - Prevent inserting malicious SAML assertion
2016-02-17 09:38:39 -05:00
Pedro Igor f7ba306016 [KEYCLOAK-2497] - Prevent inserting malicious SAML assertion 2016-02-17 11:51:58 -02:00
Pavel Drozd 38e4ad15d5 KEYCLOAK-2498 - Fix assertion on page content. 2016-02-17 14:35:41 +01:00
Marek Posolda c4144dd884 Merge pull request #2234 from mposolda/master
KEYCLOAK-2412 KEYCLOAK-2495 cluster fixes and improvements
2016-02-17 13:57:13 +01:00
mposolda e237bcd383 KEYCLOAK-2412 wildfly configs and polishing 2016-02-17 13:10:51 +01:00
mposolda f52f998bcd KEYCLOAK-2495 Improve startup time with many offlineSessions in UserSessionPersister 2016-02-17 11:02:42 +01:00
mposolda 1328531f31 KEYCLOAK-2412 Added ClusterProvider. Avoid concurrent federation sync execution by more cluster nodes at the same time.
Clustering - more progress
2016-02-17 11:02:42 +01:00
mposolda 61f2baf65e KEYCLOAK-2412 Test for concurrent federation sync in cluster 2016-02-17 11:02:42 +01:00
Stian Thorgersen 7841c5f07b Merge pull request #2232 from abstractj/cli-registration-parent
Fixes the parent for Keycloak client registration cli module
2016-02-17 07:45:15 +00:00
Stian Thorgersen 7f60e4f986 Merge pull request #2231 from stianst/master
KEYCLOAK-2493
2016-02-17 07:41:44 +00:00
Stian Thorgersen 181b329faf Merge pull request #2230 from tkyjovsk/cluster-testing
Cluster testing - updates
2016-02-17 07:41:35 +00:00
Stian Thorgersen 6d2eeb7cd6 Merge pull request #2227 from mhajas/master
Fix SAML adapter tests
2016-02-17 07:39:28 +00:00
Stian Thorgersen 5df540df8c Merge pull request #2223 from ssilvert/partial-import-tests
KEYCLOAK-2481: Create admin client endpoint for partial import + tests
2016-02-17 07:39:03 +00:00
Stian Thorgersen a8ea2ef5d5 Merge pull request #2221 from mstruk/admin-client
Move event and authentication tests under org/keycloak/teststuite/admin
2016-02-17 07:38:26 +00:00
Tomas Kyjovsky 65a840be3d KEYCLOAK-1678 added invalidation tests for groups and roles, added mroe update tests for realm 2016-02-16 18:57:12 +01:00
Bruno Oliveira f3752f804f Fixes the parent for Keycloak client registration cli module 2016-02-16 15:33:49 -02:00
Stian Thorgersen 5bc3ee0e8c KEYCLOAK-2493
Set default theme based on product name
2016-02-16 18:05:06 +01:00
Tomas Kyjovsky acf8549d51 KEYCLOAK-1678 generalized invalidation tests, added test for users and clients 2016-02-16 05:49:43 +01:00
Tomas Kyjovsky fa3c0bb0aa KEYCLOAK-1678 generalized cluster tests for any number of backend nodes 2016-02-15 23:58:50 +01:00
Tomas Kyjovsky 9fd9a1a5ad KEYCLOAK-1678 customizable server outputs to console 2016-02-15 23:56:44 +01:00
Tomas Kyjovsky cbdf30b549 KEYCLOAK-1678 parametrized ispn cache owners 2016-02-15 23:46:49 +01:00
Bill Burke c9cc189602 make RealmModel unmodifiable collections 2016-02-12 16:28:07 -05:00
Bill Burke 328e1a0cd8 Merge pull request #2224 from patriot1burke/master
cache fixes, optimzations, stress test framework
2016-02-12 12:33:55 -05:00
Bill Burke 24da8288eb Merge remote-tracking branch 'upstream/master' 2016-02-12 11:38:36 -05:00
Bill Burke 4ff1848681 javadoc 2016-02-12 11:38:12 -05:00
mhajas 474043b688 Merge remote-tracking branch 'upstream/master' 2016-02-12 16:10:03 +01:00
mhajas 7c64ab228b Fix SAML adapter tests 2016-02-12 16:05:23 +01:00
Marek Posolda a25658fb31 Merge pull request #2226 from mposolda/master
KEYCLOAK-1989 Refreshing offline tokens didn't work correctly in clus…
2016-02-12 13:32:21 +01:00
mposolda 969b8c153f KEYCLOAK-1989 Refreshing offline tokens didn't work correctly in cluster with revokeRefreshToken enabled 2016-02-12 12:54:47 +01:00
Stian Thorgersen b0dd65c706 Merge pull request #2216 from jean-merelis/master
Angular2 example
2016-02-12 11:06:00 +01:00
Marek Posolda 57eefca4a0 Merge pull request #2225 from mposolda/master
Fix MySQL
2016-02-12 09:47:37 +01:00
mposolda 132044bcb1 Support for add big number of users in batches 2016-02-12 09:06:35 +01:00
mposolda e880a768c5 Fix MySQL 2016-02-12 09:06:12 +01:00
Bill Burke 860a104828 stress testing 2016-02-12 00:30:36 -05:00
Bill Burke bddf214bc0 test 2016-02-11 22:09:58 -05:00
Bill Burke d79a7146ba fix cache 2016-02-11 22:01:54 -05:00
Stan Silvert 17e09a557b Fix conflict. 2016-02-11 15:38:58 -05:00
Stan Silvert dd9cf3be39 KEYCLOAK-2481: Create admin client endpoint for partial endpoint + tests 2016-02-11 15:26:52 -05:00
Marek Posolda 3bd6974ccb Merge pull request #2222 from mposolda/master
Fix Kerberos test broken in some environments
2016-02-11 17:26:23 +01:00
mposolda fee1f6f61a Fix Kerberos test broken in some environments 2016-02-11 16:49:21 +01:00
Marko Strukelj 92f5f8f5cd Move event and authentication tests under org/keycloak/teststuite/admin 2016-02-11 16:48:35 +01:00
Marek Posolda b234db4b34 Merge pull request #2220 from mposolda/master
KEYCLOAK-2436 Better defaults
2016-02-11 16:21:42 +01:00
mposolda 6c39810ba7 KEYCLOAK-2436 Better defaults 2016-02-11 15:50:11 +01:00
Bill Burke c2fa0e5c6d Merge pull request #2214 from mposolda/master
KEYCLOAK-2463 Fix performance issue with just 2 default connections p…
2016-02-11 09:41:48 -05:00
Bill Burke 67ce3fdbd2 Merge pull request #2215 from patriot1burke/master
concurrency, some JPA cleanup too
2016-02-11 09:41:37 -05:00
Stian Thorgersen 49d0b72c74 Merge pull request #2218 from mstruk/admin-client
KEYCLOAK-1967 Add support for authentication flows into admin-rest-client
2016-02-11 15:34:24 +01:00
Bill Burke 018c44ef2c conflicts 2016-02-11 08:43:29 -05:00
Marko Strukelj dadb470609 KEYCLOAK-1967 Add support for authentication flows into admin-rest-client 2016-02-11 12:18:01 +01:00
Stian Thorgersen a4ce389bf5 Merge pull request #2217 from stianst/master
Revert back to servlet 3.0
2016-02-11 10:02:54 +01:00
Stian Thorgersen c2a601dc04 Merge pull request #2213 from mstruk/npe
KEYCLOAK-2461 NPE when deploying an .ear
2016-02-11 09:25:25 +01:00
Stian Thorgersen 4ea586ebe6 Revert back to servlet 3.0 2016-02-11 09:09:39 +01:00
Jean Merelis 94c71aa59c fix link to angular2-product 2016-02-11 02:03:29 -02:00
Jean Merelis bc514fd308 added instructions for install and transpile angular2 2016-02-11 01:59:45 -02:00
Jean Merelis 71cfa11d2f cleanup angular2-product example 2016-02-11 01:46:31 -02:00
Jean Merelis 5e9f3b32fc add angular2-product example 2016-02-11 00:53:03 -02:00
Jean Merelis fd48d4335a add client in testream for angular2-product example 2016-02-11 00:48:05 -02:00
Bill Burke 8bf9ea838a remove some @JoinTables 2016-02-10 21:32:44 -05:00
Bill Burke f2bd50335a errors 2016-02-10 20:47:27 -05:00
Bill Burke e714d4f724 filter needs to be backward compatible 2016-02-10 14:55:18 -05:00
Bill Burke fd212a2a2a Merge remote-tracking branch 'upstream/master' 2016-02-10 14:09:43 -05:00
Bill Burke 84949bb51f concurrency 2016-02-10 14:09:29 -05:00
mposolda aac274bbb3 KEYCLOAK-2463 Fix performance issue with just 2 default connections per route in Apache HTTP client 2016-02-10 18:07:11 +01:00
Marko Strukelj 94da1dfc13 KEYCLOAK-2461 NPE when deploying an .ear 2016-02-10 16:13:46 +01:00
Stian Thorgersen 066d6bb230 Merge pull request #2211 from stianst/KEYCLOAK-2475
KEYCLOAK-2475
2016-02-10 14:52:22 +01:00
Stian Thorgersen 72ded04517 Merge pull request #2210 from stianst/KEYCLOAK-2466
KEYCLOAK-2466 Redirection back to account/password is broken
2016-02-10 14:44:54 +01:00
Stian Thorgersen 77912b2117 KEYCLOAK-2475
Move client registration endpoints
2016-02-10 14:23:04 +01:00
Stian Thorgersen dcb5ef4fd8 Merge pull request #2201 from tkyjovsk/cluster-testing
KEYCLOAK-1678 fixed containers setup & TwoNodeClusterTest
2016-02-10 14:07:51 +01:00
Stian Thorgersen d6acf2496a Merge pull request #2209 from stianst/KEYCLOAK-2472
KEYCLOAK-2472
2016-02-10 14:04:19 +01:00
Stian Thorgersen 555236c3f0 KEYCLOAK-2466 Redirection back to account/password is broken 2016-02-10 14:02:33 +01:00
Stian Thorgersen 4670d93f76 KEYCLOAK-2472
Remove deprecated endpoints
2016-02-10 13:32:53 +01:00
Stian Thorgersen 8ed1677249 Merge pull request #2188 from ahus1/logout_should_keep_fragement_KEYCLOAK-2323
Don't encode URL fragment for logout URL / KEYCLOAK-2323
2016-02-10 13:16:51 +01:00
Marek Posolda cf7a194ea3 Merge pull request #2208 from mposolda/master
KEYCLOAK-2470 Upgrade Apache HTTP Client to wildfly 10.0.0.Final alig…
2016-02-10 11:24:53 +01:00
mposolda eae36ac2c0 KEYCLOAK-2470 Upgrade Apache HTTP Client to wildfly 10.0.0.Final aligned version 2016-02-10 11:00:40 +01:00
Stian Thorgersen 6f56d006fc Merge pull request #2207 from stianst/KEYCLOAK-2303
KEYCLOAK-2303 Update Hibernate
2016-02-10 10:58:08 +01:00
Stian Thorgersen 633eb842a3 KEYCLOAK-2303 Update Hibernate 2016-02-10 10:07:56 +01:00
Stian Thorgersen 11b7e62e58 Merge pull request #2205 from stianst/KEYCLOAK-2303
KEYCLOAK-2303
2016-02-10 10:07:22 +01:00
Stian Thorgersen bb77c717c9 KEYCLOAK-2303
Update dependency versions to align with WildFly 10
2016-02-10 09:07:06 +01:00
Bill Burke 0b54838f31 concurrency 2016-02-09 22:13:55 -05:00
Bill Burke 45e5cfac99 concurrency 2 2016-02-09 21:10:30 -05:00
Marek Posolda 03b8839abe Merge pull request #2203 from mposolda/master
Support for bulk adding of users in testsuite CLI
2016-02-09 21:22:36 +01:00
mposolda 4dffc3cf7e Support for bulk adding of users in testsuite CLI 2016-02-09 21:20:05 +01:00
Tomas Kyjovsky ef77e2a246 KEYCLOAK-1678 added SessionFailoverClusterTest 2016-02-09 19:30:02 +01:00
Tomas Kyjovsky 620ca86d45 KEYCLOAK-1678 updated README with some info about cluster tests 2016-02-09 19:29:03 +01:00
Bill Burke 1c97b9c41d Merge remote-tracking branch 'upstream/master' 2016-02-09 12:26:11 -05:00
Bill Burke 347cdcbb28 concurrency 2016-02-09 12:25:48 -05:00
Tomas Kyjovsky 590ad1a7ca KEYCLOAK-1678 fixed TwoNodeClusterTest 2016-02-09 16:36:00 +01:00
Tomas Kyjovsky fd327bb225 KEYCLOAK-1678 fixed cluster containers setup (-Djava.net.preferIPv4Stack=true is needed for cluster to form) 2016-02-09 16:35:40 +01:00
Bill Burke 00236c13ff Merge pull request #2180 from cainj13/persistentWildcard
add support for wildcard persistent nameId attribute to SAML protocol
2016-02-09 09:43:30 -05:00
Stian Thorgersen cd9d67037c Merge pull request #2200 from gtudan/KEYCLOAK-2468
KEYCLOAK-2468: Update bcprov to 1.52
2016-02-09 13:31:50 +01:00
Gregor Tudan 50a2c1d0ed Use bouncy-castle version 1.52 (as provided by wildfly) 2016-02-09 10:34:35 +01:00
Stian Thorgersen 3ecdc9506e Merge pull request #2199 from stianst/KEYCLOAK-2425
KEYCLOAK-2425
2016-02-09 09:57:53 +01:00
Stian Thorgersen c4df7f7674 Merge pull request #2196 from stianst/KEYCLOAK-2434
KEYCLOAK-2434
2016-02-09 09:57:38 +01:00
Stian Thorgersen 98f9f94cab Merge pull request #2198 from tkyjovsk/cluster-testing
KEYCLOAK-1678 Initial 2-node cluster test
2016-02-09 09:05:39 +01:00
Stian Thorgersen cc7f755fe9 KEYCLOAK-2425
Replacing SNAPSHOT with timestamp in /auth/resources/<VERSION> path doesn't work well with load balancing
2016-02-09 09:03:25 +01:00
Stian Thorgersen 528e3127e6 KEYCLOAK-2434
BasicAuthRequestAuthenticator ignores HttpClientBuilder configuration
2016-02-09 08:41:35 +01:00
Stian Thorgersen 5ff266b148 Merge pull request #2197 from abstractj/KEYCLOAK-2452
Server Cache documentation is out of date
2016-02-09 08:30:36 +01:00
Tomas Kyjovsky 655a5a1401 KEYCLOAK-1678 Enabled exclusion pattern for cluster test by default. 2016-02-09 05:29:20 +01:00
Tomas Kyjovsky 4a8b19cfce KEYCLOAK-1678 Added initial cluster test for 2-node cluster. 2016-02-09 05:21:11 +01:00
Tomas Kyjovsky db25a81d23 KEYCLOAK-1678 Added module for building wildfly mod_cluster load balancer. 2016-02-09 05:20:19 +01:00
Tomas Kyjovsky 28fa2b92d9 Merge upstream-master into cluster-testing 2016-02-08 23:53:30 +01:00
Bruno Oliveira 3b6f26b2ec Server Cache documentation is out of date 2016-02-08 22:23:31 +01:00
Stian Thorgersen 155a2d687b Merge pull request #2195 from stianst/KEYCLOAK-2429
KEYCLOAK-2429
2016-02-08 20:33:25 +01:00
Stian Thorgersen cf94411aaa Merge pull request #2194 from stianst/KEYCLOAK-2426
KEYCLOAK-2426
2016-02-08 20:32:57 +01:00
Stian Thorgersen e5447f7f1e Merge pull request #2193 from stianst/KEYCLOAK-2455
KEYCLOAK-2455
2016-02-08 20:32:41 +01:00
Bill Burke 02b9d5ee13 Merge pull request #2191 from patriot1burke/master
hashcode/equals on all entities/adapters
2016-02-08 14:32:37 -05:00
Stian Thorgersen 635ccae144 KEYCLOAK-2429
Disabled Google Identity Provider still kicks in when 'Authenticate by default' is enabled
2016-02-08 19:51:21 +01:00
Stian Thorgersen d8779a3d01 KEYCLOAK-2426
No visible link for users with 'manage-users' role
2016-02-08 19:47:02 +01:00
Stian Thorgersen ec20c004ba KEYCLOAK-2455
Typo in cached ClientTemplateAdapter
2016-02-08 19:40:42 +01:00
Stian Thorgersen 5f41215e27 Merge pull request #2192 from stianst/master
KEYCLOAK-2450
2016-02-08 19:39:38 +01:00
Stian Thorgersen 98bd0b003e KEYCLOAK-2450
WildFly adapter script should support offline installation of adapter
2016-02-08 19:39:15 +01:00
Stian Thorgersen f28f87b050 Merge pull request #2189 from stianst/master
KEYCLOAK-2430 Load resource bundle before bootstrapping Angular
2016-02-08 19:20:16 +01:00
Bill Burke ffc0e4f005 hashcode/equals on all entities/adapters 2016-02-08 12:20:14 -05:00
Tomas Kyjovsky a275a24797 Added auth-server-wildfly-cluster profile. 2016-02-08 16:12:47 +01:00
Stian Thorgersen fd0d30fd1a KEYCLOAK-2430 Load resource bundle before bootstrapping Angular 2016-02-08 11:49:41 +01:00
Stian Thorgersen fb07559980 Merge pull request #2186 from vmuzikar/master
Fix Adapter Tests dependencies
2016-02-08 10:13:46 +01:00
Stian Thorgersen 8128d23059 Merge pull request #2184 from mhajas/KEYCLOAK-2391
KEYCLOAK-2391 history of resource access test
2016-02-08 10:13:35 +01:00
Stian Thorgersen 4c7f686505 Merge pull request #2182 from tkyjovsk/container-handling
Changes to container handling in arquillian testsuite, updated README
2016-02-08 10:12:45 +01:00
Stian Thorgersen 8ebf6a650f Merge pull request #2187 from ssilvert/admin-endpoint-tests
KEYCLOAK-1976: Add support for events into admin-rest-client + tests
2016-02-08 08:51:55 +01:00
Tomas Kyjovsky 1c792ad769 Merge container-handling into cluster-testing 2016-02-07 21:37:13 +01:00
Tomas Kyjovsky 1752ac8e63 Refactoring of auth-server-* and auth server migration Maven profiles 2016-02-07 21:30:54 +01:00
Tomas Kyjovsky 8f32e1b554 Adapter tests: updated artifactId of saml-post-signatures example to sales-post-sig 2016-02-07 21:28:25 +01:00
Tomas Kyjovsky 89250a69fb KEYCLOAK-1678: H2TestEnricher for running H2 server instance during integration tests. 2016-02-07 19:39:30 +01:00
Tomas Kyjovsky a264c15886 KEYCLOAK-1678: Configuration of remote (tcp) H2 datasource for wildfly. 2016-02-07 19:38:40 +01:00
Tomas Kyjovsky 96a00317b8 Merge container-handling into cluster-testing 2016-02-07 19:19:39 +01:00
Stan Silvert 228b24a1c5 Fix it right this time. (Hard to tell for sure since I can't reproduce
locally)
2016-02-06 14:43:18 -05:00
Stan Silvert d7295473c3 Fix failure when tests are run in a different order. 2016-02-06 14:34:03 -05:00
Alexander Schwartz 01083d21d0 Don't encode URL fragment for logout URL / KEYCLOAK-2323 2016-02-06 17:43:38 +01:00
mhajas be59e2419c KEYCLOAK-2391 history of resource access tests 2016-02-06 09:17:55 +01:00
Stan Silvert e89f511465 KEYCLOAK-1976: Add support for events into admin-rest-client. Also,
arquillian tests for events.
2016-02-05 18:45:25 -05:00
Josh Cain 66cec589f7 add docbook info on how NameID is calculated 2016-02-05 11:22:10 -06:00
mhajas e3d64f301d KEYCLOAK-2428 Log also other accesses 2016-02-05 11:22:10 -06:00
Stian Thorgersen ca841abe9b KEYCLOAK-2458 Added initial concurrency test for admin endpoints 2016-02-05 11:22:09 -06:00
Bill Burke 726f746b85 KEYCLOAK-2367 2016-02-05 11:22:09 -06:00
Stian Thorgersen 192987bad5 Bump version to 1.9.0.Final-SNAPSHOT 2016-02-05 11:22:09 -06:00
Vaclav Muzikar b4a2559ac5 KEYCLOAK-2451 Add Internationalization test 2016-02-05 11:22:09 -06:00
Bill Burke 23e5357870 Merge pull request #2185 from mhajas/KEYCLOAK-2428
KEYCLOAK-2428 Log also other accesses on adapter
2016-02-05 10:37:37 -05:00
Stian Thorgersen 9c1f084dbc Merge pull request #2183 from stianst/master
KEYCLOAK-2458 Added initial concurrency test for admin endpoints
2016-02-05 12:17:20 +01:00
Vaclav Muzikar 94dbeb9c8d Fix Adapter Tests dependencies 2016-02-05 12:10:19 +01:00
mhajas 8a8552822a KEYCLOAK-2428 Log also other accesses 2016-02-05 11:56:05 +01:00
Stian Thorgersen 1c0f1b4e60 Merge pull request #2181 from patriot1burke/master
KEYCLOAK-2367
2016-02-05 10:50:27 +01:00
Stian Thorgersen d12119a089 KEYCLOAK-2458 Added initial concurrency test for admin endpoints 2016-02-05 10:35:56 +01:00
Tomas Kyjovsky dfeb35b5e6 Updated Arquillian testsuite README / UI Testing. 2016-02-05 04:16:01 +01:00
Tomas Kyjovsky 585f1035f9 Updated Arquillian testsuite README. 2016-02-05 03:54:22 +01:00
Tomas Kyjovsky 64212fc9a2 Merge upstream-master into container-handling 2016-02-05 01:31:02 +01:00
Tomas Kyjovsky 191d03f5f3 minor edits 2016-02-05 01:29:53 +01:00
Tomas Kyjovsky 58084d5ee5 KEYCLOAK-1678 Fixed app-server containers' handling. 2016-02-05 01:07:40 +01:00
Bill Burke c63ef3c825 Merge remote-tracking branch 'upstream/master' 2016-02-04 16:50:16 -05:00
Bill Burke e26ac0983a KEYCLOAK-2367 2016-02-04 16:50:02 -05:00
Tomas Kyjovsky 3a51b3530d KEYCLOAK-1678 Reorganized containers handling. (WIP: adapter-libs installation via CLI doesn't work) 2016-02-04 20:24:58 +01:00
Josh Cain d5d954e80a add support for wildcard persistent nameId attribute to SAML protocol 2016-02-04 11:06:14 -06:00
Stian Thorgersen d8d96e5ec1 Merge pull request #2177 from vmuzikar/master
KEYCLOAK-2451 Add Internationalization test
2016-02-04 16:35:24 +01:00
Stian Thorgersen b32365aa12 Merge pull request #2179 from stianst/master
Bump version to 1.9.0.Final-SNAPSHOT
2016-02-04 16:35:04 +01:00
Stian Thorgersen 579ab56a5a Bump version to 1.9.0.Final-SNAPSHOT 2016-02-04 15:55:11 +01:00
Vaclav Muzikar 9e8a33710f KEYCLOAK-2451 Add Internationalization test 2016-02-04 12:48:06 +01:00
Stian Thorgersen affe6ef229 Merge pull request #2176 from stianst/master
KEYCLOAK-2446
2016-02-04 10:12:55 +01:00
Stian Thorgersen 19b1190185 Merge pull request #2175 from pdrozd/KEYCLOAK-2445
KEYCLOAK-2445 - Added ssl profile to eap7 server and adapter.
2016-02-04 09:55:22 +01:00
Stian Thorgersen 040b32ead7 KEYCLOAK-2446
Cordova not working
2016-02-04 09:47:25 +01:00
Stian Thorgersen 989e2dcc11 Merge pull request #2174 from stianst/master
Fix provider examples
2016-02-04 09:18:09 +01:00
Stian Thorgersen ca38602cfe Fix provider examples 2016-02-04 09:17:44 +01:00
Marek Posolda 39379a8129 Merge pull request #2173 from mposolda/master
Docs update: Fix typo and update list of supported databases
2016-02-04 09:15:31 +01:00
mposolda 9fee1275e3 Docs update: Fix typo and update list of supported databases 2016-02-04 09:14:37 +01:00
Pavel Drozd 9adbd370c2 KEYCLOAK-2445 - Added ssl profile to eap7 server and adapter. 2016-02-04 09:10:41 +01:00
Stian Thorgersen 8931be5e61 Merge pull request #2171 from abstractj/basic-example-documentation
Fix the documentation mismatch at basic auth
2016-02-04 07:56:01 +01:00
Bill Burke 461d766f7d Merge pull request #2172 from patriot1burke/master
KEYCLOAK-2444  	KEYCLOAK-2443
2016-02-03 18:21:31 -05:00
Bill Burke 75c88999d8 Merge remote-tracking branch 'upstream/master' 2016-02-03 17:32:00 -05:00
Bill Burke c4c99d5f81 KEYCLOAK-2443 2016-02-03 17:31:50 -05:00
Bill Burke a899d86ac0 KEYCLOAK-2444 2016-02-03 16:43:29 -05:00
Bruno Oliveira 524c809c82 Fix the documentation mismatch at basic auth 2016-02-03 15:13:50 -02:00
Stian Thorgersen eae52a563c Merge pull request #2169 from stianst/master
KEYCLOAK-2441
2016-02-03 16:53:14 +01:00
Marek Posolda a25e8c337e Merge pull request #2170 from mposolda/master
Fix fuse packaging and example
2016-02-03 16:42:24 +01:00
mposolda a707aa945f Fix fuse packaging and example 2016-02-03 16:09:06 +01:00
Stian Thorgersen 1bcc305392 Remove eap6 overlay from downloads bundle 2016-02-03 15:40:38 +01:00
Stian Thorgersen fc1914e53d Merge pull request #2168 from stianst/master
KEYCLOAK-2440 Disable migration tests as they are causing problems bu…
2016-02-03 15:40:23 +01:00
Stian Thorgersen 76ca4e6475 KEYCLOAK-2441
Authenticator example doesn't work
2016-02-03 15:40:09 +01:00
Stian Thorgersen 7277df2bb5 Merge pull request #2167 from mstruk/ose-sni-master
KEYCLOAK-2439 Client adapter fails to set SNI field during TLS handshake
2016-02-03 15:17:54 +01:00
Stian Thorgersen 1d98d5db6d KEYCLOAK-2440 Disable migration tests as they are causing problems building release 2016-02-03 15:04:25 +01:00
Stian Thorgersen 337f390090 Merge pull request #2165 from stianst/master
KEYCLOAK-2435
2016-02-03 14:54:42 +01:00
Marko Strukelj 683487aafe KEYCLOAK-2439 Client adapter fails to set SNI field during TLS handshake 2016-02-03 14:47:19 +01:00
Stian Thorgersen 136c797813 KEYCLOAK-2436
Account exists page shows to primary buttons
2016-02-03 14:20:40 +01:00
Stian Thorgersen 2974034974 KEYCLOAK-2435
Feedback on login screen not showing correctly
2016-02-03 13:41:31 +01:00
Stian Thorgersen adfc93cfc9 Merge pull request #2164 from mposolda/master
Fix failing test with DB2
2016-02-03 13:04:57 +01:00
Stian Thorgersen b52ac0fbfb Merge pull request #2163 from stianst/master
KEYCLOAK-2433
2016-02-03 13:04:24 +01:00
mposolda bae3ce4aab Fix failing test with DB2 2016-02-03 12:29:37 +01:00
Stian Thorgersen 60872dd8dd KEYCLOAK-2433
ClassNotFoundException: javax.ws.rs.core.Response from Module 'org.keycloak.keycloak-server-spi:main'
2016-02-03 12:25:31 +01:00
Stian Thorgersen 60f9f73c4c Merge pull request #2162 from stianst/master
KEYCLOAK-1524
2016-02-03 11:49:43 +01:00
Stian Thorgersen c7a8742a36 KEYCLOAK-1524
Source code headers
2016-02-03 11:20:22 +01:00
Stian Thorgersen c9c590d1cf Merge pull request #2161 from mposolda/master
KEYCLOAK-2431 Ensure users removed through UserManager to properly in…
2016-02-03 10:53:51 +01:00
Stian Thorgersen bdc0977a0e Merge pull request #2152 from vramik/KEYCLOAK-2423
KEYCLOAK-2423: Update arquillian testsuite for eap7
2016-02-03 10:53:25 +01:00
Stian Thorgersen 1a31c3af15 Merge pull request #2125 from mhajas/mellon
KEYCLOAK-2405 mod_auth_mellon test + docker image
2016-02-03 10:21:27 +01:00
mposolda db76655717 KEYCLOAK-2431 Ensure users removed through UserManager to properly invoke callbacks. Make UserSessionPersister implementations more resistent when user was not properly removed 2016-02-03 10:16:39 +01:00
Stian Thorgersen 1edbf96cae Merge pull request #2160 from stianst/master
KEYCLOAK-2299
2016-02-03 10:13:24 +01:00
Stian Thorgersen 26897ea46d KEYCLOAK-2299
createdDate of credential is not exported
2016-02-03 09:49:10 +01:00
Bill Burke c68a78bd31 Merge pull request #2159 from patriot1burke/master
filter examples, subsystem dependencies
2016-02-02 19:51:00 -05:00
Bill Burke ec9b9879e8 filter examples, subsystem dependencies 2016-02-02 19:15:05 -05:00
Bill Burke 11eaf0d731 Merge pull request #2157 from mposolda/master
KEYCLOAK-2404 Fix migration issue on postgres from 1.6.0
2016-02-02 14:06:56 -05:00
Bill Burke 2934cb108f Merge pull request #2158 from patriot1burke/master
KEYCLOAK-2297
2016-02-02 14:06:17 -05:00
Bill Burke 84bc19ff87 Merge remote-tracking branch 'upstream/master' 2016-02-02 12:28:59 -05:00
Bill Burke d0b17a0aea KEYCLOAK-2297 2016-02-02 12:28:50 -05:00
Bill Burke 057e049bde Merge pull request #2156 from patriot1burke/master
KEYCLOAK-2220
2016-02-02 11:29:21 -05:00
mposolda 8838486df6 KEYCLOAK-2404 Fix migration issue on postgres from 1.6.0 2016-02-02 17:05:54 +01:00
Bill Burke e2287188a8 Merge remote-tracking branch 'upstream/master' 2016-02-02 09:50:21 -05:00
Bill Burke 0f63a5063b KEYCLOAK-2220 2016-02-02 09:46:28 -05:00
Bill Burke 0d842f47a7 Merge pull request #2155 from stianst/KEYCLOAK-2424
KEYCLOAK-2424 Add delete role button to client role list
2016-02-02 09:34:40 -05:00
Bill Burke 40fee55474 Merge pull request #2154 from mposolda/master
KEYCLOAK-1506 Mysql warning at startup
2016-02-02 09:34:33 -05:00
Bill Burke d1a4221ce6 Merge pull request #2153 from stianst/master
KEYCLOAK-2420
2016-02-02 09:34:24 -05:00
Stian Thorgersen 6c106dc681 KEYCLOAK-2424 Add delete role button to client role list 2016-02-02 14:32:58 +01:00
mposolda 958c379688 KEYCLOAK-1506 Mysql warning at startup 2016-02-02 14:28:34 +01:00
Stian Thorgersen 26264ec042 KEYCLOAK-2420
Export client
2016-02-02 14:24:52 +01:00
Stian Thorgersen 00e50111b1 Merge pull request #2151 from stianst/master
KEYCLOAK-1774
2016-02-02 11:37:43 +01:00
Vlasta Ramik 8e49d4ff90 Update arquillian testsuite for eap7 2016-02-02 11:05:35 +01:00
Stian Thorgersen 747d110da0 KEYCLOAK-2421
Remove aesh module from server feature pack
2016-02-02 10:54:54 +01:00
Stian Thorgersen af9e995412 KEYCLOAK-1774
Upgrade to WildFly 10.0.0.Final
2016-02-02 10:36:11 +01:00
Bill Burke b0f548f3cb Merge pull request #2149 from patriot1burke/master
KEYCLOAK-2408 KEYCLOAK-2330
2016-02-01 17:14:15 -05:00
Bill Burke c65160db1f Merge remote-tracking branch 'upstream/master' 2016-02-01 16:35:12 -05:00
Bill Burke 37cf335247 KEYCLOAK-2408 KEYCLOAK-2330 2016-02-01 16:35:00 -05:00
Marek Posolda 8ad8a3fbac Merge pull request #2148 from mposolda/master
KEYCLOAK-2235 Fix possible transaction leak at startup with add-user
2016-02-01 22:23:43 +01:00
Bill Burke bd104e2138 Merge pull request #2137 from abstractj/KEYCLOAK-2411
Realm import will raise NPE when clientID is missing
2016-02-01 16:03:17 -05:00
mposolda 6b2fb9a2bb KEYCLOAK-2235 Fix possible transaction leak at startup with add-user 2016-02-01 21:47:46 +01:00
Bill Burke c5b0bb64f7 Merge pull request #2146 from patriot1burke/master
saml subsystem as7 backport
2016-02-01 14:58:19 -05:00
Bill Burke f660e4e757 Merge pull request #2147 from mposolda/master
KEYCLOAK-2235 Fix transaction leaks
2016-02-01 14:58:10 -05:00
mposolda 732256eceb KEYCLOAK-2235 Fix transaction leaks 2016-02-01 18:21:27 +01:00
Bill Burke 9bc5a4592c fix 2016-02-01 10:39:00 -05:00
Bill Burke 4ba77a15a0 Merge remote-tracking branch 'upstream/master' 2016-02-01 10:36:45 -05:00
Bill Burke 66f4921227 saml subsystem as7 backport 2016-02-01 10:36:25 -05:00
Stian Thorgersen 77a7b5a130 Merge pull request #2116 from mstruk/KEYCLOAK-2315
KEYCLOAK-2315 Remove jboss-earlyaccess-repository repository
2016-02-01 15:26:26 +01:00
Marek Posolda dab7f617d4 Merge pull request #2144 from mposolda/master
KEYCLOAK-330 Fix failing test with DB2
2016-02-01 10:57:44 +01:00
mposolda f268170aa9 KEYCLOAK-330 Fix failing test with DB2 2016-02-01 10:57:04 +01:00
Bill Burke db78ea76b8 Merge pull request #2142 from patriot1burke/master
saml subsystem model changes
2016-01-30 08:40:10 -05:00
Bill Burke dede702b65 Merge pull request #2140 from vmuzikar/master
KEYCLOAK-2415 Add disabledClient test
2016-01-30 07:20:26 -05:00
Bill Burke 6c020661e8 saml subsystem model changes 2016-01-30 07:13:13 -05:00
Marek Posolda 1d023056e9 Merge pull request #2141 from mposolda/master
KEYCLOAK-2292 Broker login: remove identity provider prefix from auto…
2016-01-29 21:15:54 +01:00
mposolda 9332655110 KEYCLOAK-2292 Broker login: remove identity provider prefix from autogenerated username 2016-01-29 18:43:12 +01:00
Marek Posolda 61c838955e Merge pull request #2139 from mposolda/master
KEYCLOAK-330 IBM DB2 support
2016-01-29 18:43:01 +01:00
Vaclav Muzikar bd6f2a3e2d KEYCLOAK-2415 Add disabledClient test 2016-01-29 18:19:30 +01:00
Vaclav Muzikar b930ef4b1b KEYCLOAK-2414 Fix ClientSettingsTest 2016-01-29 18:18:51 +01:00
mposolda dcebc453df KEYCLOAK-330 IBM DB2 support 2016-01-29 17:43:11 +01:00
Bill Burke 5959d5cbf3 Merge pull request #2130 from ssilvert/partial-import-description
KEYCLOAK-2335: Document Partial Import in Admin Console
2016-01-29 09:34:39 -05:00
Bill Burke 39f12549a3 Merge pull request #2122 from abstractj/KEYCLOAK-2151
Brute force detector active for non-existing accounts
2016-01-29 09:32:28 -05:00
Bill Burke 16cb4eca0c Merge pull request #2136 from mhajas/my-prod-branch
Fix adapter tests
2016-01-29 09:30:34 -05:00
Bill Burke 8cffbdd581 Merge pull request #2131 from patriot1burke/master
saml adapter needs endpoint
2016-01-29 09:30:04 -05:00
Marek Posolda 366606e6a0 Merge pull request #2138 from mposolda/master
Fix testsuite with Sybase
2016-01-29 15:04:21 +01:00
mposolda f2082d5e24 Fix testsuite with Sybase 2016-01-29 13:30:44 +01:00
Marek Posolda 41551e08b0 Merge pull request #2129 from georgekankava/staging/literal-boolean-values-should-not-be-used-in-condition-expressions-fix-1
squid:S1125 - Literal boolean values should not be used in condition expressions
2016-01-29 13:23:20 +01:00
Marek Posolda a7619f90e2 Merge pull request #2128 from georgekankava/staging/long-suffix-L-should-be-upper-case-fix-1
squid:LowerCaseLongSuffixCheck - Long suffix "L" should be upper case
2016-01-29 13:20:42 +01:00
Bruno Oliveira 5eb8d3be5a Realm import will raise NPE when clientID is missing 2016-01-29 10:05:42 -02:00
mhajas 3e1aef1678 Merge remote-tracking branch 'upstream/master' into my-prod-branch 2016-01-29 12:11:58 +01:00
mhajas ce907bbd15 Fix adapter tests demorealm 2016-01-29 11:48:10 +01:00
Stian Thorgersen c1cdcb424f Merge pull request #2135 from stianst/master
KEYCLOAK-2410
2016-01-29 11:36:05 +01:00
mhajas c5719b4604 Fix SAML tests 2016-01-29 11:23:22 +01:00
Stian Thorgersen 9bd04b18a8 KEYCLOAK-2410
TOTP shows both realm name and display name
2016-01-29 11:01:49 +01:00
Marek Posolda 9f2bd0f55e Merge pull request #2132 from mposolda/master
Fix sybase
2016-01-29 08:38:06 +01:00
mposolda 8ed76c6921 Fix sybase 2016-01-29 08:36:05 +01:00
Bill Burke 34095ef522 docs 2016-01-28 23:28:11 -05:00
Bill Burke a068d83dd8 saml adapter endpoint changes 2016-01-28 22:56:14 -05:00
Stan Silvert 3a2ec809e9 KEYCLOAK-2335: Document Partial Import in Admin Console 2016-01-28 16:56:28 -05:00
George Kankava 92a494359d squid:S1125 - Literal boolean values should not be used in condition expressions 2016-01-29 00:22:47 +04:00
Marek Posolda 02d3993c7f Merge pull request #2127 from mposolda/master
KEYCLOAK-2364 Fix migration with MSSQL
2016-01-28 17:54:48 +01:00
mposolda 6046d15279 KEYCLOAK-2364 Fix migration with MSSQL 2016-01-28 16:39:01 +01:00
Bill Burke fae05c1cc5 Merge pull request #2126 from patriot1burke/master
browser back button
2016-01-28 10:31:14 -05:00
George Kankava e937dda556 squid:LowerCaseLongSuffixCheck - Long suffix "L" should be upper case 2016-01-28 19:06:41 +04:00
Bill Burke 93f85d34a7 Merge remote-tracking branch 'upstream/master' 2016-01-28 09:23:34 -05:00
Bill Burke 6f036ac434 fix tests 2016-01-28 09:23:23 -05:00
mhajas 6b6fb9975f Merge remote-tracking branch 'upstream/master' into mellon 2016-01-28 10:47:34 +01:00
Marek Posolda 1618d9250a Merge pull request #2124 from mposolda/master
KEYCLOAK-1402 Postgresplus 9.4 support
2016-01-28 10:18:14 +01:00
mposolda e1416b658f KEYCLOAK-1402 Postgresplus 9.4 support 2016-01-28 10:12:23 +01:00
mhajas 50f4986dd7 Docker image apache + mod_auth_mellon 2016-01-28 09:54:39 +01:00
mhajas 6c5fb2a4aa Tests for mod_auth_mellon 2016-01-28 09:54:28 +01:00
Bill Burke 9027f9b4d3 fix2 2016-01-27 23:06:20 -05:00
Bill Burke 8a3148017d fix 2016-01-27 23:04:12 -05:00
Bill Burke 5853ae4eff whoops 2016-01-27 22:59:41 -05:00
Bill Burke b37fbd6a2f browser back button 2016-01-27 22:59:08 -05:00
Bill Burke 25347cd45e browser back button 2016-01-27 22:14:28 -05:00
Bruno Oliveira 385717c0fb Brute force detector active for non-existing accounts 2016-01-27 19:09:44 -02:00
Marko Strukelj 5826c034eb KEYCLOAK-2315 Remove jboss-earlyaccess-repository repository 2016-01-27 14:17:25 +01:00
Stian Thorgersen 1b0ccae4ac Merge pull request #2121 from pdrozd/KEYCLOAK-2401-ssl
KEYCLOAK-2401 - add ssl profile and fix urls when ssl profile enabled.
2016-01-27 11:39:06 +01:00
Stian Thorgersen 003ed1e302 Merge pull request #2120 from pdrozd/KEYCLOAK-2400
KEYCLOAK-2400 - adapter installation on windows
2016-01-27 11:38:52 +01:00
Pavel Drozd 09f8d14572 KEYCLOAK-2401 - add ssl profile and fix urls when ssl profile enabled. 2016-01-27 10:06:11 +01:00
Pavel Drozd bf276a833e KEYCLOAK-2400 - changed adapter installation to be able to install it on windows. 2016-01-27 08:34:04 +01:00
Bill Burke 81569ce5d2 Merge pull request #2119 from patriot1burke/master
KEYCLOAK-2349
2016-01-26 16:22:02 -05:00
Bill Burke 527edf8a3b Merge pull request #2115 from mstruk/typo
Fix typo bug introduced during modules refactoring
2016-01-26 16:06:21 -05:00
Bill Burke 66e1ee79d0 KEYCLOAK-2349 2016-01-26 15:45:40 -05:00
Marek Posolda b36a4bee5d Merge pull request #2117 from mposolda/master
KEYCLOAK-2080 Downgrade H2 to 1.3.173, which is version in Wildfly  1…
2016-01-26 21:24:20 +01:00
Bill Burke 9fa35eda69 Merge pull request #2118 from patriot1burke/master
KEYCLOAK-2387
2016-01-26 14:20:27 -05:00
Bill Burke 449bc5c4dc KEYCLOAK-2387 2016-01-26 14:19:53 -05:00
mposolda 526fdd021d KEYCLOAK-2080 Downgrade H2 to 1.3.173, which is version in Wildfly 10.0.0.CR5 2016-01-26 17:59:30 +01:00
Marek Posolda 4baeaded23 Merge pull request #2110 from mposolda/master
KEYCLOAK-2351 Support for response_type=token to be OAuth2 compliant
2016-01-26 17:54:08 +01:00
mposolda 3bc4355bb1 Small note about distributable HttpSessions in clustering docs 2016-01-26 17:12:26 +01:00
mposolda 3731964a2a KEYCLOAK-2351 Support for response_type=token to be OAuth2 compliant 2016-01-26 17:09:42 +01:00
Marko Strukelj 5c46f0603d Fix typo bug introduced during modules refactoring 2016-01-26 16:45:22 +01:00
mposolda 90842cf7ef Minor change in message 2016-01-26 16:24:08 +01:00
Stian Thorgersen 9143d4b5cb Merge pull request #2111 from mstruk/KEYCLOAK-2362
KEYCLOAK-2362 NPE if SSL certificate is not trusted by Java's default keystore
2016-01-26 16:17:29 +01:00
Stian Thorgersen 301b61c4f9 Merge pull request #2113 from stianst/KEYCLOAK-2327
KEYCLOAK-2327 Make sure transaction is only committed or rolledback before response is returned
2016-01-26 16:06:15 +01:00
Stian Thorgersen e3daf6fcf8 KEYCLOAK-2327 Make sure transaction is only committed for success 2016-01-26 14:47:59 +01:00
Stian Thorgersen 39b3c648a2 Merge pull request #2109 from stianst/KEYCLOAK-2218
KEYCLOAK-2218 Allow updating user without including username
2016-01-26 13:56:01 +01:00
Marko Strukelj 4f890e8f2e KEYCLOAK-2362 NPE if SSL certificate is not trusted by Java's default keystore 2016-01-26 13:53:16 +01:00
Stian Thorgersen f9fd398f5b KEYCLOAK-2218 Allow updating user without including username 2016-01-26 13:01:49 +01:00
Stian Thorgersen b93deddda3 Merge pull request #2107 from mstruk/i18n
KEYCLOAK-2305 Complete internationalization of admin console
2016-01-26 12:50:03 +01:00
Stian Thorgersen 561fa06140 Merge pull request #2106 from stianst/KEYCLOAK-1341
KEYCLOAK-1341
2016-01-26 12:48:14 +01:00
Stian Thorgersen 646c75c6ff Merge pull request #2103 from stianst/KEYCLOAK-2388
KEYCLOAK-2388
2016-01-26 12:47:51 +01:00
Marek Posolda 3a67fd7685 Merge pull request #2105 from mposolda/master
KEYCLOAK-2379 Fix possible error during sycnchronization changed user…
2016-01-26 11:48:15 +01:00
Stian Thorgersen 4a698bc22a KEYCLOAK-2388
Localisation should fallback to english rather than display raw keys
2016-01-26 11:47:30 +01:00
Stian Thorgersen 26ec117b5e KEYCLOAK-1341
Admins can change sso timeout to 1 second and then not able to login
2016-01-26 11:24:00 +01:00
Marko Strukelj ea33af2c59 KEYCLOAK-2305 Complete internationalization of admin console 2016-01-26 11:22:45 +01:00
Stian Thorgersen c55b91ed32 Merge pull request #2102 from stianst/KEYCLOAK-2237
KEYCLOAK-2237
2016-01-26 11:08:14 +01:00
mposolda 506194fb7f KEYCLOAK-2379 Fix possible error during sycnchronization changed users with Active Directory 2016-01-26 10:43:17 +01:00
Stian Thorgersen 54abfa4859 KEYCLOAK-2237
Offer the possibility to add own locale to login/registration dialogs
2016-01-26 10:16:05 +01:00
Stian Thorgersen a21f70fcd2 Merge pull request #2104 from stianst/KEYCLOAK-2390
KEYCLOAK-2390
2016-01-26 09:51:54 +01:00
Stian Thorgersen 256819ea3a Merge pull request #2101 from stianst/KEYCLOAK-2391
KEYCLOAK-2391
2016-01-26 09:31:23 +01:00
Stian Thorgersen ee847c1f20 KEYCLOAK-2390
Relative redirect uri is broken
2016-01-26 09:01:14 +01:00
Stian Thorgersen 06caa8e67e KEYCLOAK-2391
View history of access to Resource Server
2016-01-26 08:50:28 +01:00
Bill Burke bdc439b4a4 Merge pull request #2100 from patriot1burke/master
KEYCLOAK-2389
2016-01-26 00:42:29 -05:00
Bill Burke daec8977e4 KEYCLOAK-2389 2016-01-25 19:34:57 -05:00
Bill Burke 1b0aa8e55b saml logging 2016-01-25 17:38:29 -05:00
Bill Burke 85c4279f0b Merge pull request #2098 from patriot1burke/master
fix doco errors
2016-01-25 10:16:35 -05:00
Bill Burke ca2c573f50 fix doco errors 2016-01-25 10:16:08 -05:00
Bill Burke 1cc359d1d8 Merge pull request #2096 from patriot1burke/master
redirect after post in flow
2016-01-22 18:40:45 -05:00
Bill Burke c28e1c76e0 Merge remote-tracking branch 'upstream/master' 2016-01-22 18:40:14 -05:00
Bill Burke 8b7bc5b153 redirect after post in flow 2016-01-22 18:39:55 -05:00
Bill Burke d3cab2be93 Merge pull request #2094 from bdecoste/master
KeyStore element in subsystem not required
2016-01-22 18:34:55 -05:00
Bill Burke 4d18812768 Merge pull request #2093 from patriot1burke/master
KEYCLOAK-2377
2016-01-22 18:20:07 -05:00
root ae6dde9cda KeyStore element in sunsystem not required 2016-01-22 15:05:24 -08:00
Bill Burke f3ea2ab8d0 fix errant pom 2016-01-22 17:03:31 -05:00
Bill Burke 742f162cfc Merge remote-tracking branch 'upstream/master' 2016-01-22 17:01:14 -05:00
Bill Burke fedf3d0e52 KEYCLOAK-2377 2016-01-22 17:00:51 -05:00
Stian Thorgersen e71ac6f1b3 Merge pull request #2090 from velias/KEYCLOAK-2348
KEYCLOAK-2348 - Social login provider for Microsoft account - KC master branch
2016-01-22 13:26:45 +01:00
Vlastimil Elias 4e23311318 KEYCLOAK-2348 - Social login provider for Microsoft account - KC master
branch
2016-01-22 11:03:08 +01:00
Stian Thorgersen 4492af2bda Merge pull request #2089 from mikesir87/patch-1
Update javascript-adapter.xml
2016-01-22 09:10:23 +01:00
Michael Irwin cd3a6007d7 Update javascript-adapter.xml
Several spelling fixes, grammar adjustments, and other alterations.

Some parts are still a little hard to read/follow, but this is at least a little bit of an improvement.
2016-01-22 00:33:46 -05:00
Bill Burke e0af79e66b Merge pull request #2087 from patriot1burke/master
KEYCLOAK-2373 KEYCLOAK-2376
2016-01-21 21:30:01 -05:00
Bill Burke 1ee76a126f KEYCLOAK-2373 KEYCLOAK-2376 2016-01-21 20:18:07 -05:00
Stian Thorgersen de472dbd43 Merge pull request #2085 from ssilvert/logging-i18n-services2
KEYCLOAK-1280: i18n for logging in services module
2016-01-21 19:49:43 +01:00
Stian Thorgersen 72ebaca233 Merge pull request #2084 from Sweazer/credential-migration-fix
Fixed sql syntax error in credential migration script
2016-01-21 19:47:44 +01:00
Stan Silvert fa2055c896 KEYCLOAK-1280: pom should not override version from dependency management 2016-01-21 11:55:38 -05:00
Stan Silvert c6dd0d52b9 KEYCLOAK-1280: i18n logging for org.keycloak.services.scheduled 2016-01-21 11:55:36 -05:00
Stan Silvert 446cd3701f KEYCLOAK-1280: i18n logging for org.keycloak.services.resources 2016-01-21 11:55:35 -05:00
Stan Silvert e73a88443c KEYCLOAK-1280: i18n logging for org.keycloak.services.resources 2016-01-21 11:55:33 -05:00
Stan Silvert 857201ab55 KEYCLOAK-1280: i18n logging for org.keycloak.services.messages 2016-01-21 11:55:31 -05:00
Stan Silvert 779a5c2f3c KEYCLOAK-1280: i18n logging for org.keycloak.services.managers 2016-01-21 11:55:30 -05:00
Stan Silvert c81b37cc4d KEYCLOAK-1280: i18n logging for
org.keycloak.services.clientregistration.oidc
2016-01-21 11:55:28 -05:00
Stan Silvert 27ad9dcdd1 KEYCLOAK-1280: i18n logging for org.keycloak.services 2016-01-21 11:55:26 -05:00
Stan Silvert 1f04676f08 KEYCLOAK-1280: i18n logging for org.keycloak.provider 2016-01-21 11:55:25 -05:00
Stan Silvert 0de4170865 KEYCLOAK-1280: i18n logging for org.keycloak.protocol.oidc.utils 2016-01-21 11:55:23 -05:00
Stan Silvert 9c33738941 KEYCLOAK-1280: i18n logging for org.keycloak.protocol.oidc.mappers 2016-01-21 11:55:21 -05:00
Stan Silvert adfc192877 KEYCLOAK-1280: i18n logging for org.keycloak.protocol.oidc.endpoints 2016-01-21 11:55:20 -05:00
Stan Silvert 550e23c8f6 KEYCLOAK-1280: i18n logging for org.keycloak.protocol.oidc 2016-01-21 11:55:18 -05:00
Stan Silvert 9dccd45543 KEYCLOAK-1280: i18n logging for org.keycloak.protocol 2016-01-21 11:55:17 -05:00
Stan Silvert d2ad1808a5 KEYCLOAK-1280: i18n logging for org.keycloak.partialimport 2016-01-21 11:55:15 -05:00
Stan Silvert 273c662b29 KEYCLOAK-1280: i18n logging for org.keycloak.exportimport 2016-01-21 11:55:14 -05:00
Stan Silvert 24602257e1 KEYCLOAK-1280: i18n logging for org.keycloak.email 2016-01-21 11:55:12 -05:00
Stan Silvert b544adf170 KEYCLOAK-1280: i18n logging for
org.keycloak.authentication.requiredactions
2016-01-21 11:55:10 -05:00
Stan Silvert 2cecce37a7 KEYCLOAK-1280: i18n logging for org.keycloak.authentication.forms 2016-01-21 11:55:09 -05:00
Stan Silvert 7bc74aac73 KEYCLOAK-1280: i18n logging for
org.keycloak.authentication.authenticators.resetcred
2016-01-21 11:55:07 -05:00
Stan Silvert dfb92db2b7 KEYCLOAK-1280: i18n logging for
org.keycloak.authentication.authenticators.directgrant
2016-01-21 11:55:05 -05:00
Stan Silvert 36e711fb88 KEYCLOAK-1280: i18n logging for
org.keycloak.authentication.authenticators.client
2016-01-21 11:55:04 -05:00
Stan Silvert 0ef8c18b93 KEYCLOAK-1280: i18n logging for
org.keycloak.services.authentication.authenticators.browser
2016-01-21 11:55:02 -05:00
Stan Silvert b1baea7023 KEYCLOAK-1280: i18n logging for
org.keycloak.authentication.authenticators.broker
2016-01-21 11:55:00 -05:00
Stan Silvert 3b4cb94ff1 KEYCLOAK-1280: i18n logging for org.keycloak.authentication 2016-01-21 11:54:59 -05:00
Stan Silvert 7514104974 KEYCLOAK-1280: I18N for logging 2016-01-21 11:54:57 -05:00
Moritz Becker 35a2d176fa Fixed sql syntax error in credential migration script 2016-01-21 17:09:42 +01:00
Bill Burke 0df651cc0c Merge pull request #2082 from Sweazer/client-ui-fix
Client UI fix
2016-01-21 10:18:56 -05:00
Moritz Becker b23ea18c89 client UI fix 2016-01-21 16:09:13 +01:00
Bill Burke ac513eac70 Merge pull request #2081 from patriot1burke/master
fix embedded keycloak, re-org saml-core
2016-01-21 09:57:14 -05:00
Bill Burke b625ed13a8 fix embedded keycloak, re-org saml-core 2016-01-21 09:56:28 -05:00
Stian Thorgersen f5db03d6e9 Merge pull request #2079 from stianst/master
Add test with different case in scheme part of redirect uri
2016-01-21 15:30:54 +01:00
Stian Thorgersen 45f8f5c926 Merge pull request #2078 from stianst/KEYCLOAK-2370
KEYCLOAK-2370
2016-01-21 14:22:13 +01:00
Stian Thorgersen e4898ae983 Add test with different case in scheme part of redirect uri 2016-01-21 14:12:40 +01:00
Stian Thorgersen 52048a6060 KEYCLOAK-2312 Move forms/common-themes to themes 2016-01-21 13:51:01 +01:00
Stian Thorgersen 53626fca5b Merge pull request #2077 from stianst/master
KEYCLOAK-2369
2016-01-21 13:16:22 +01:00
Stian Thorgersen a43be534c2 KEYCLOAK-2370
Remove syslog event listener
2016-01-21 13:15:30 +01:00
Stian Thorgersen bfdc18f482 KEYCLOAK-2369
Account page doesn't load
2016-01-21 12:34:41 +01:00
Stian Thorgersen 5008799895 Merge pull request #2064 from tkyjovsk/KEYCLOAK-1420
Keycloak 1420 enabled arqullian testsuite in default build
2016-01-21 09:58:53 +01:00
Stian Thorgersen 86fa63fbca Merge pull request #2075 from stianst/master
Updated readme
2016-01-21 09:51:12 +01:00
Stian Thorgersen 64b75f6833 Updated readme 2016-01-21 09:50:33 +01:00
Stian Thorgersen dd4981b3fd Merge pull request #2074 from stianst/master
Updated readme
2016-01-21 09:49:05 +01:00
Stian Thorgersen a7d4d4373a Updated readme 2016-01-21 09:48:45 +01:00
Stian Thorgersen 82a260b18a Merge pull request #2073 from stianst/master
KEYCLOAK-2312 Move client-registration libs into integration
2016-01-21 09:48:06 +01:00
Stian Thorgersen 59c7cfcc97 KEYCLOAK-2312 Move client-registration libs into integration 2016-01-21 09:06:23 +01:00
Stian Thorgersen 6677995ba3 Merge pull request #2046 from tkyjovsk/KEYCLOAK-1642
KEYCLOAK-1642 Moved Admin Console UI tests to a separate module.
2016-01-21 08:25:50 +01:00
Bill Burke fcde4c3302 Merge pull request #2072 from patriot1burke/master
final re-org work
2016-01-20 17:27:03 -05:00
Bill Burke efd8317259 final re-org work 2016-01-20 17:26:26 -05:00
Bill Burke d9487a8745 social broker reorg 2016-01-20 16:46:38 -05:00
Bill Burke fd83f0acef Merge pull request #2070 from patriot1burke/master
infinispan reorg
2016-01-20 16:15:16 -05:00
Bill Burke 01f3c6ceb7 reorg event log/email 2016-01-20 15:38:09 -05:00
Bill Burke 83ecef2f29 force rebuild 2016-01-20 15:28:06 -05:00
Bill Burke ad33d3c0d8 infinispan reorg 2016-01-20 14:52:04 -05:00
Bill Burke 94fa1b2c89 Merge pull request #2068 from stianst/KEYCLOAK-2185
KEYCLOAK-2185 Add support to disable realm and user cache, and added …
2016-01-20 10:54:00 -05:00
Tomas Kyjovsky 91195102f3 Moved EAP7 adapter test module to proper location. 2016-01-20 16:15:33 +01:00
Tomas Kyjovsky 6d7092ef4c Merge upstream-master into KEYCLOAK-1642
Conflicts:
	testsuite/integration-arquillian/tests/adapters/eap6/pom.xml
	testsuite/integration-arquillian/tests/adapters/pom.xml
2016-01-20 16:12:20 +01:00
Stian Thorgersen 7ab851728e Merge pull request #2069 from stianst/KEYCLOAK-2323
KEYCLOAK-2323 Revert changes
2016-01-20 14:36:08 +01:00
Stian Thorgersen 73db7a0ea9 KEYCLOAK-2323 Revert changes 2016-01-20 14:34:59 +01:00
Stian Thorgersen d7ee63f3c1 Merge pull request #2065 from vramik/KEYCLOAK-2347
KEYCLOAK-2347: Test - Adapter - EAP 7.0
2016-01-20 14:18:58 +01:00
Stian Thorgersen 3dc090b893 KEYCLOAK-2185 Add support to disable realm and user cache, and added support to clear caches from admin console 2016-01-20 14:09:03 +01:00
Stian Thorgersen c4b1acb8eb Merge pull request #2067 from stianst/KEYCLOAK-2346
KEYCLOAK-2346 Add identity provider and external username to event wh…
2016-01-20 13:00:22 +01:00
Stian Thorgersen 733ca53983 KEYCLOAK-2346 Add identity provider and external username to event when login via broker 2016-01-20 10:23:46 +01:00
Stian Thorgersen 5b3fcab4c9 Merge pull request #2063 from tkyjovsk/KEYCLOAK-2238
Keycloak 2238 fixes for some servlet-based adapter tests
2016-01-20 09:11:44 +01:00
Stian Thorgersen 4318ed26b2 Merge pull request #2059 from fmaturel/master
Correcting French translation
2016-01-20 09:10:27 +01:00
Stian Thorgersen ddfeae39d0 Merge pull request #2055 from vramik/prod
KEYCLOAK-2340: Update arquillian testsuite for dr3 build
2016-01-20 09:09:35 +01:00
Tomas Kyjovsky eb14bdff01 KEYCLOAK-1642 Added profile for enabling console UI tests. Disabled by default. 2016-01-20 09:07:07 +01:00
Tomas Kyjovsky 424678c131 KEYCLOAK-1420 Removed redundant travis build step. 2016-01-20 07:28:27 +01:00
Tomas Kyjovsky a69a89cbde KEYCLOAK-1420 Removed redundant profile "arquillian-integration-tests" from the root POM. 2016-01-20 07:27:43 +01:00
Tomas Kyjovsky 9d68d46a1b KEYCLOAK-1420 Added arquillian testsuite to the default build. 2016-01-20 07:26:46 +01:00
Tomas Kyjovsky c8d8423852 KEYCLOAK-2238 Fixed client URLs in demorealm.json used in servlet adapter tests. 2016-01-20 07:22:19 +01:00
Tomas Kyjovsky efb82cbafb KEYCLOAK-2238 Added null check into AbstractAdapterTest 2016-01-20 07:21:31 +01:00
Tomas Kyjovsky cc82c509c5 Reorganized arquillian testsuite modules. 2016-01-20 07:16:53 +01:00
Bill Burke 9a63039d1a Merge pull request #2062 from patriot1burke/master
re-org, jpa, mongo, truststore, httpclient
2016-01-19 19:25:22 -05:00
Bill Burke 35caa10ce8 Merge remote-tracking branch 'upstream/master' 2016-01-19 18:11:56 -05:00
Bill Burke 7d08d4c036 fixes 2016-01-19 18:11:45 -05:00
Bill Burke 4ed1eb66ee truststore httpclient 2016-01-19 17:29:16 -05:00
Bill Burke 17d856a5d8 mongo 2016-01-19 17:12:54 -05:00
Bill Burke 9b09a91481 consolidate JPA 2016-01-19 17:00:58 -05:00
Bill Burke d52e186c4e Merge pull request #2060 from patriot1burke/master
reorg freemarker
2016-01-19 14:06:23 -05:00
fmaturel 17268a0bd5 Correcting French translation 2016-01-19 17:37:14 +01:00
Bill Burke 46634b386e reorg freemarker 2016-01-19 11:33:59 -05:00
Tomas Kyjovsky 1dd8a04703 Merge upstream-master into KEYCLOAK-1642 2016-01-19 17:33:20 +01:00
Vlasta Ramik 9385c8a4b3 KEYCLOAK-2340: removed reference to RH-SSO 2016-01-19 14:18:39 +01:00
Vlasta Ramik 6d872f0c03 KEYCLOAK-2347: Test - Adapter - EAP 7.0 2016-01-19 13:59:07 +01:00
Stian Thorgersen 65521864d4 Merge pull request #2056 from stianst/KEYCLOAK-2344
KEYCLOAK-2344
2016-01-19 13:35:42 +01:00
Stian Thorgersen e50709fc2d KEYCLOAK-2344
Realm Display Name is not used in verification e-mail
2016-01-19 13:01:30 +01:00
Stian Thorgersen e4e532ca39 Merge pull request #2054 from stianst/KEYCLOAK-2157
KEYCLOAK-2157
2016-01-19 11:44:22 +01:00
Vlasta Ramik 0211798161 KEYCLOAK-2340: Update arquillian testsuite for dr3 build 2016-01-19 11:09:08 +01:00
Stian Thorgersen fdd7001bee KEYCLOAK-2157
Language drop-down is not obvious
2016-01-19 10:44:31 +01:00
Stian Thorgersen 56b9009225 Merge pull request #2052 from stianst/KEYCLOAK-1572
Keycloak 1572
2016-01-19 10:44:16 +01:00
Stian Thorgersen 5f8c26de63 Merge pull request #2053 from stianst/KEYCLOAK-813
KEYCLOAK-813
2016-01-19 10:08:04 +01:00
Stian Thorgersen 3452078177 Update migration guide 2016-01-19 09:59:49 +01:00
Stian Thorgersen 8b91d46ea2 KEYCLOAK-813
Long user attributes render off the screen
2016-01-19 09:26:10 +01:00
Stian Thorgersen 32978d022d KEYCLOAK-1572
Messages on login page are not in line with PatternFly
2016-01-19 08:52:44 +01:00
Stian Thorgersen 9d9ce6c04e Merge pull request #2048 from stianst/KEYCLOAK-2286
KEYCLOAK-2286 Remove deprecated OpenID Connect endpoints
2016-01-18 21:55:22 +01:00
Stian Thorgersen e8336f3dd4 Merge pull request #2051 from stianst/KEYCLOAK-2308
KEYCLOAK-2308
2016-01-18 20:43:31 +01:00
Stian Thorgersen 1a344fe8a0 Merge pull request #2047 from tkyjovsk/KEYCLOAK-2127_property-fix
KEYCLOAK-2127 Added missing definition of "jboss.server.config.dir" p…
2016-01-18 20:43:08 +01:00
Stian Thorgersen ebd732eaff Merge pull request #2050 from stianst/KEYCLOAK-2328
KEYCLOAK-2328
2016-01-18 20:42:41 +01:00
Stian Thorgersen 594c1451c0 Merge pull request #2049 from stianst/KEYCLOAK-2160
KEYCLOAK-2160 Add id to user table
2016-01-18 20:42:21 +01:00
Stian Thorgersen bc845bed0e KEYCLOAK-2286 Remove deprecated OpenID Connect endpoints 2016-01-18 20:31:23 +01:00
Stian Thorgersen 55ab973cad KEYCLOAK-2308
Save button is enabled on Theme page
2016-01-18 20:28:34 +01:00
Stian Thorgersen 60a372a35e KEYCLOAK-2328
Client registration service documentation has <provider> in example links
2016-01-18 20:11:15 +01:00
Stian Thorgersen 75ad0c8ac6 KEYCLOAK-2160 Add id to user table 2016-01-18 20:07:57 +01:00
Tomas Kyjovsky 52af74f051 KEYCLOAK-2127 Added missing definition of "jboss.server.config.dir" property. 2016-01-18 19:33:32 +01:00
Stian Thorgersen 81fc03b3fe Merge pull request #2044 from stianst/master
KEYCLOAK-2313 Add getName, getDisplayName, getDisplayNameHtml to acco…
2016-01-18 19:17:02 +01:00
Tomas Kyjovsky 3e35f83eb3 Merge upstream-master into refactoring 2016-01-18 18:13:19 +01:00
Tomas Kyjovsky 2650cc152d Moved admin UI tests to separate module. 2016-01-18 16:02:24 +01:00
Stian Thorgersen 3f6b848849 KEYCLOAK-2313 Add getName, getDisplayName, getDisplayNameHtml to account RealmBean 2016-01-18 14:42:08 +01:00
Stian Thorgersen 79eb42522a Merge pull request #2042 from pedroigor/KEYCLOAK-2336
[KEYCLOAK-2336] - Support ECP clients using SOAP 1.1
2016-01-18 14:37:56 +01:00
Stian Thorgersen bb3f036267 Merge pull request #2041 from stianst/master
KEYCLOAK-2319
2016-01-18 14:37:34 +01:00
Pedro Igor 7ec52ebc2b [KEYCLOAK-2336] - Support ECP clients using SOAP 1.1 2016-01-18 11:01:59 -02:00
Stian Thorgersen 904ed65a5c KEYCLOAK-2319
Cannot login to admin console after upgrade 1.6 -> 1.8.CR1
2016-01-18 12:34:18 +01:00
Stian Thorgersen ded919c0a6 Merge pull request #2033 from ahus1/ahus1_location_fragment_lost_on_logout
Handle URL fragments when redirect from logout / KEYCLOAK-2323
2016-01-18 09:52:37 +01:00
Stian Thorgersen 5462075d17 Merge pull request #2039 from patriot1burke/master
broker and social re-org
2016-01-18 09:27:43 +01:00
Bill Burke b0054b7682 email, login, account 2016-01-16 09:38:24 -05:00
Bill Burke ec05103ca0 Merge remote-tracking branch 'upstream/master' 2016-01-16 09:16:17 -05:00
Bill Burke b403c9b934 broker and social 2016-01-16 09:15:17 -05:00
Bill Burke 7895eb6a3d Merge pull request #2038 from patriot1burke/master
1st phase module re-org
2016-01-15 21:22:50 -05:00
Bill Burke 76e3a72f4c fixes 2016-01-15 20:18:36 -05:00
Bill Burke d1a43d6318 fixes 2016-01-15 20:08:17 -05:00
Bill Burke 007e9530ec brute force refactr, mv protocol 2016-01-15 19:25:28 -05:00
Bill Burke 5017d71383 exportimport and timer and events 2016-01-15 19:07:17 -05:00
Bill Burke b93d55cb63 remove model-api, add server-spi 2016-01-15 18:44:17 -05:00
Bill Burke de84756515 Merge pull request #2036 from thomasdarimont/issue/KEYCLOAK-2329-propagate-generated-id-to-new-identity-provider
KEYCLOAK-2329 - fix wrong resourcePath in AdminEvent after creating new IdentityProvider stored via JPA.
2016-01-15 17:31:40 -05:00
Thomas Darimont 39cb362d63 KEYCLOAK-2329 - fix wrong resourcePath in AdminEvent after creating new IdentityProvider stored via JPA.
We now propagate the generated internal id to the given IdentityProvider instance.
Previously if one creates a new IdentityProvider in a Realm with activated admin event listeners,
then a admin event is created that contains a resourcePath that ends with /null instead of /some-uuid.
2016-01-15 20:29:38 +01:00
Stian Thorgersen 504218470b Merge pull request #2032 from ahus1/ahus1_timeskew_for_init
set timeSkew when passing tokens to init()
2016-01-15 16:38:38 +01:00
Stian Thorgersen b21bf21043 Merge pull request #2028 from stianst/JACKSON2
KEYCLOAK-1809
2016-01-15 16:29:01 +01:00
Stian Thorgersen 33565ff8d9 Added jax-rs response filter to commit transaction 2016-01-15 15:50:38 +01:00
Bill Burke e77f940c9f Merge pull request #2031 from helder-jaspion/master
Fix typos
2016-01-14 19:27:06 -05:00
Bill Burke af554a95eb Merge pull request #2034 from patriot1burke/master
saml client installation formats
2016-01-14 19:26:07 -05:00
Bill Burke 5a74c72452 Merge remote-tracking branch 'upstream/master' 2016-01-14 18:33:22 -05:00
Bill Burke 96193c0b8e formatting 2016-01-14 18:11:58 -05:00
Alexander Schwartz b7ac2548f1 Handle URL fragments when redirect from logout / KEYCLOAK-2323 2016-01-14 23:06:16 +01:00
Bill Burke 67ef3e7a45 client installation formats 2016-01-14 16:50:17 -05:00
Alexander Schwartz 9b8c80e83f set timeSkew when passing tokens to init(), also allow timeSkew to be passed as a parameter / KEYCLOAK-2322 2016-01-14 22:37:29 +01:00
Helder Alves 7283d4a0c6 Update admin-messages_en.properties
typo fix
2016-01-14 14:47:42 -02:00
Helder Alves a20aec89ba Update messages_pt_BR.properties
changed from "email" to "e-mail"
2016-01-14 14:42:42 -02:00
Helder Alves 09a4a864de Update messages_pt_BR.properties
Changed word "email" to "e-mail"
2016-01-14 14:41:24 -02:00
Stian Thorgersen 435980d776 KEYCLOAK-1809
Upgrade jackson to version 2.x
2016-01-14 16:34:30 +01:00
Stian Thorgersen e913c8da16 Merge pull request #2029 from stianst/KEYCLOAK-2307
KEYCLOAK-2307
2016-01-14 16:33:45 +01:00
Stian Thorgersen e27d0752c4 KEYCLOAK-2307
OTP field is remember in browser
2016-01-14 15:56:08 +01:00
Bill Burke 0bad78c53b Merge pull request #2025 from thomasdarimont/issue/KEYCLOAK-2311-white-list-role-for-conditional-otp
KEYCLOAK-2311 - Allow to specify role to skip conditional OTP authentication.
2016-01-14 09:05:58 -05:00
Bill Burke 1e16803d7b Merge pull request #2021 from cainj13/providerConfigPassword
Add 'password' configuration field type for federation providers
2016-01-14 09:05:17 -05:00
Stian Thorgersen 04d3f1a632 Merge pull request #2027 from stianst/master
Reintrodce creating admin from welcome page as removing it breaks tests
2016-01-14 15:02:49 +01:00
Stian Thorgersen 15103aad81 Reintrodce creating admin from welcome page as removing it breaks tests 2016-01-14 13:46:13 +01:00
Stian Thorgersen 73e23cf235 Merge pull request #2026 from raehalme/events-typo
Fixed typo in 22.2. Event Listener
2016-01-14 13:16:50 +01:00
Thomas Raehalme 8c249c331c Fixed typo in 22.2. Event Listener 2016-01-14 13:52:05 +02:00
Stian Thorgersen eb10d6bfd6 Merge pull request #2024 from stianst/FIX-CLIENT-INSTALLATION-TEST
Fix client installation test
2016-01-14 12:33:26 +01:00
Stian Thorgersen 0db0dad4e6 Merge pull request #2019 from vramik/prod
arquillian-testsuite: add support for testing prod binaries
2016-01-14 12:29:06 +01:00
Thomas Darimont d6b10aa911 KEYCLOAK-2311 - Polishing.
Aligned constant names, but keep constant values to stay compatible with previous version.
2016-01-14 12:05:19 +01:00
Stian Thorgersen a6da6e48f9 Fix client installation test 2016-01-14 11:54:39 +01:00
Thomas Darimont 92c2ec366d KEYCLOAK-2311 - Allow to specify role to skip conditional OTP authentication.
We now allow specify a role to skip OTP.
Previously it was  not possible to specify that OTP authentication should be skipped via a role but the
ConditionalOtpAuthenticator allowed to specify to show/skip OTP via a user attribute or HTTP request header pattern.
Having the "skip role" aligns the role based configuration options with the user attribute and HTTP request header configuration.
2016-01-14 11:47:30 +01:00
Bill Burke 714e2fa7a5 Merge pull request #2022 from patriot1burke/master
KEYCLOAK-2098
2016-01-13 19:44:29 -05:00
Bill Burke f9c458aa0e Merge remote-tracking branch 'upstream/master' 2016-01-13 16:18:42 -05:00
Bill Burke 9dc21224bd clean up most redirects 2016-01-13 16:18:24 -05:00
Josh Cain 202d562022 Add 'password' configuration field type for federation providers 2016-01-13 13:05:38 -06:00
Stian Thorgersen 30c3a5ed70 Merge pull request #2020 from stianst/master
Mark all SPIs as internal
2016-01-13 19:24:43 +01:00
Bill Burke b3967263d1 Merge remote-tracking branch 'upstream/master' 2016-01-13 10:16:06 -05:00
Bill Burke b9c9b58727 refactor 2016-01-13 10:15:54 -05:00
Stian Thorgersen f8841d2365 Mark all SPIs as internal 2016-01-13 15:49:53 +01:00
Vlasta Ramik 36461aabc1 renamed version.eap6.server.dist proprty to version.server.dist, removed auth-server-eap6 profile 2016-01-13 15:37:30 +01:00
Stian Thorgersen 1619624691 Merge pull request #2018 from stianst/master
KEYCLOAK-2142
2016-01-13 15:06:48 +01:00
Stian Thorgersen e572d45bea KEYCLOAK-2142
Drop support to deploy server to EAP 6.4
2016-01-13 14:32:04 +01:00
Vlasta Ramik 1bbd670091 removed redundant profile 2016-01-13 13:49:15 +01:00
Vlasta Ramik 2edc68fff6 removed redundant dependency declaration 2016-01-13 12:20:49 +01:00
Vlasta Ramik 06a3c3b995 update datasource.xsl in wildfly server module 2016-01-13 12:15:09 +01:00
Vlasta Ramik ef1aa2127d eap7 server version bump 2016-01-13 12:10:02 +01:00
Vlasta Ramik 6dd7634a77 Merge remote-tracking branch 'upstream/master' into prod
Conflicts:
	testsuite/integration-arquillian/tests/adapters/eap6/pom.xml
	testsuite/integration-arquillian/tests/adapters/eap6/src/main/xslt/standalone.xsl
2016-01-13 12:09:34 +01:00
Stian Thorgersen ddb41e2c58 Merge pull request #2017 from mposolda/master
KEYCLOAK-2270 Use sub instead of iss for clientId in JWTClientAuthent…
2016-01-13 11:10:09 +01:00
Stian Thorgersen 50fdf33040 Merge pull request #2011 from mhajas/eap64
KEYCLOAK-1646 Run adapter tests on EAP 6.4
2016-01-13 11:09:49 +01:00
Stian Thorgersen 3a83adae77 Merge pull request #2016 from stianst/master
Version bump
2016-01-13 11:09:26 +01:00
mposolda 4642876323 KEYCLOAK-2270 Use sub instead of iss for clientId in JWTClientAuthenticator 2016-01-13 10:12:20 +01:00
Stian Thorgersen 0193c696ab Version bump 2016-01-13 09:20:38 +01:00
Stian Thorgersen 75d715d8a7 Merge pull request #2015 from stianst/master
Remove reference to built-in admin account from docs
2016-01-13 09:03:15 +01:00
Stian Thorgersen 62b90ee4e3 Remove reference to built-in admin account from docs 2016-01-13 09:02:52 +01:00
Stian Thorgersen 2f88868e20 Merge pull request #2014 from ssilvert/KEYCLOAK-2294-pi-testrealm
KEYCLOAK-2294 Partial import can fail with 'Removing a detached insta…
2016-01-13 08:37:49 +01:00
Stan Silvert b0de77013c KEYCLOAK-2294 Partial import can fail with 'Removing a detached instance' 2016-01-12 15:46:48 -05:00
Stian Thorgersen 25cd3e3ba8 Merge pull request #2013 from stianst/master
KEYCLOAK-2298
2016-01-12 20:31:37 +01:00
Stian Thorgersen 1b0bf966b6 KEYCLOAK-2298
Demo doesn't have add-user-keycloak.bat
2016-01-12 19:46:34 +01:00
Marek Posolda d8e28ad96b Merge pull request #2012 from mposolda/master
KEYCLOAK-2290 Migration fixes. Bulk update of algorithm field during migration
2016-01-12 18:49:34 +01:00
mposolda 3336d4d7ac KEYCLOAK-2290 bulk update of algorithm field during migration from 1.7 2016-01-12 18:04:50 +01:00
Stian Thorgersen ee3a880a55 Merge pull request #1999 from pedroigor/KEYCLOAK-2266
[KEYCLOAK-2266] - OAuth2 Token Introspection.
2016-01-12 15:37:41 +01:00
Vlasta Ramik 52588bb25f fixed adapter dependencies for eap6 and as7 2016-01-12 15:13:59 +01:00
Vlasta Ramik a2f5d46764 add support for firefox_binary for second browser 2016-01-12 14:59:21 +01:00
Vlasta Ramik 6c3c08e711 add installing adapter tests via cli scripts, checking server log 2016-01-12 14:31:28 +01:00
Pedro Igor c9f9ee9799 [KEYCLOAK-2266] - OAuth2 Token Introspection. 2016-01-12 11:16:42 -02:00
mhajas c0d3d9cf6b Remove unnecessary lines 2016-01-12 12:52:26 +01:00
mhajas c93db980a6 Merge remote-tracking branch 'upstream/master' into eap64 2016-01-12 12:02:56 +01:00
mhajas acf0100411 Ignore DemoServletsAdapterTest on EAP6 2016-01-12 11:56:10 +01:00
Marek Posolda 0536f2c247 Merge pull request #2010 from mposolda/master
KEYCLOAK-2229 Fix NoClassDefFoundError when IdpEmailVerificationAuthe…
2016-01-12 11:31:16 +01:00
mposolda 6f262423f1 KEYCLOAK-2229 Fix NoClassDefFoundError when IdpEmailVerificationAuthenticator is used for link accounts during first broker login 2016-01-12 10:37:44 +01:00
Stian Thorgersen 3c5e7872a7 Merge pull request #2009 from stianst/master
KEYCLOAK-2290
2016-01-12 10:32:22 +01:00
Stian Thorgersen 421dc6043d KEYCLOAK-2290
Migration: empty algorithm field on user credentials of type 'password'
2016-01-12 09:46:35 +01:00
Stian Thorgersen 9402f89d8e Merge pull request #2008 from stianst/master
KEYCLOAK-2229
2016-01-12 09:18:57 +01:00
Stian Thorgersen 81a0135fa6 KEYCLOAK-2229
First broker login throws NoClassDefFoundError: org/keycloak/broker/provider/BrokeredIdentityContext
2016-01-12 09:18:03 +01:00
Bill Burke 43dc250bf2 Merge pull request #2006 from thomasdarimont/issue/KEYCLOAK-2040-Conditional-OTP-Authentication
KEYCLOAK-2040 - Add support for Conditional OTP auth.
2016-01-11 14:56:48 -05:00
Marek Posolda bc3222ab67 Merge pull request #2007 from mposolda/master
Fix DB tests. Cleanup after AddUserTest
2016-01-11 18:56:56 +01:00
mposolda e761d6ce10 Fix DB tests. Cleanup after AddUserTest 2016-01-11 18:00:56 +01:00
Thomas Darimont 46991764d4 KEYCLOAK-2040 - Add support for Conditional OTP auth.
Previously it was not possible to conditionally show a OTP authentication
form. This PR adds support to conditionally require OTP authentication
based on a custom user attribute, a role, a request header pattern
(with black- and whitelisting) as well as a configurable default in
case no condition matches.
2016-01-11 17:39:42 +01:00
Stian Thorgersen 747c0f9869 Merge pull request #2004 from stianst/master
KEYCLOAK-2288
2016-01-11 17:32:38 +01:00
Marek Posolda 5424cd80a8 Merge pull request #2005 from mposolda/master
Fix MySQL - fixing transactions during bootstrap
2016-01-11 17:02:08 +01:00
Stian Thorgersen 8d2becf681 Fix import of com.mongodb.util.MyAsserts.assertFalse 2016-01-11 15:47:09 +01:00
mposolda c3f69fdc54 Fix MySQL - fixing transactions during bootstrap 2016-01-11 15:31:45 +01:00
Stian Thorgersen 45215f361f KEYCLOAK-2288
Upgrade Mongo driver version to 3.2.0
2016-01-11 15:10:00 +01:00
Stian Thorgersen 802488cea0 Merge pull request #2003 from mposolda/master
Fix mongo model
2016-01-11 13:58:06 +01:00
Stian Thorgersen 3ac3d79e30 Merge pull request #2002 from stianst/master
KEYCLOAK-2284
2016-01-11 13:22:44 +01:00
mposolda fe8755d4a4 Fix mongo model 2016-01-11 13:00:56 +01:00
Stian Thorgersen e2b889d727 KEYCLOAK-2284
Setup of background tasks doesn't close KeycloakSession
2016-01-11 11:41:36 +01:00
Stian Thorgersen 2ec4cb82cc Merge pull request #2001 from stianst/master
KEYCLOAK-2278
2016-01-11 11:41:15 +01:00
Stian Thorgersen bc14cade62 KEYCLOAK-2278
NoSuchMethodError org.infinispan.Cache.entrySet() in EAP6 server overlay
2016-01-11 10:07:04 +01:00
Vlasta Ramik 554da73398 Merge remote-tracking branch 'upstream/master' into prod 2016-01-11 09:43:52 +01:00
Stian Thorgersen a6c852603e Merge pull request #2000 from mstruk/truststore
KEYCLOAK-1717 Truststore SPI and file provider
2016-01-11 09:24:53 +01:00
Stian Thorgersen f1602b3b8d Merge pull request #1998 from ssilvert/partial-import
KEYCLOAK-1979: Partial import
2016-01-11 09:22:09 +01:00
Stian Thorgersen 7c8bc5814e Merge pull request #1990 from raehalme/KEYCLOAK-2257
KEYCLOAK-2257: Store user attribute when accepting terms and conditions
2016-01-11 09:03:58 +01:00
Stian Thorgersen 33f83689d5 Merge pull request #1995 from stianst/master
Add test to create user, set password and login using admin endpoints
2016-01-11 09:01:44 +01:00
Marko Strukelj 80e2b8eb39 KEYCLOAK-1717 Truststore SPI and file provider 2016-01-10 12:39:30 +01:00
Stan Silvert fbff61bfba For overwrite, do all deletes, then all adds.
Minor UI enhancements.
Fix 2 JPA bugs.
General cleanup.
Documentation.
2016-01-08 13:45:22 -05:00
Bill Burke ba1a17e668 Merge pull request #1997 from patriot1burke/master
KEYCLOAK-2189
2016-01-08 12:05:50 -05:00
Bill Burke 7bc7510d1b KEYCLOAK-2189 2016-01-08 12:05:43 -05:00
Bill Burke dc337d684a improve client creation when template 2016-01-08 11:40:46 -05:00
Bill Burke 0f9d50924c Merge pull request #1996 from patriot1burke/master
improve client creation when template
2016-01-08 11:40:45 -05:00
Stian Thorgersen cf0eb1184a Add test to create user, set password and login using admin endpoints 2016-01-08 16:37:01 +01:00
Stian Thorgersen ecd31010fe Merge pull request #1994 from stianst/KEYCLOAK-2259
KEYCLOAK-2259
2016-01-08 16:36:12 +01:00
Stian Thorgersen 0985d3c88a Merge pull request #1993 from stianst/master
KEYCLOAK-2276
2016-01-08 16:35:56 +01:00
Vlasta Ramik 1cde40f556 fixed some compile warnings 2016-01-08 16:28:36 +01:00
Vlasta Ramik df590bfc3f fixed some compile warnings 2016-01-08 16:27:25 +01:00
Vlasta Ramik bce5c49cbc fixed some compile warnings 2016-01-08 16:27:06 +01:00
Vlasta Ramik bd8e662f88 fixed copy-admin-user-json-file 2016-01-08 16:13:15 +01:00
Stian Thorgersen ddd99c2411 KEYCLOAK-2259
Redirect URIs and token domains are matched case-sensitively
2016-01-08 15:38:00 +01:00
Stian Thorgersen 7834637749 KEYCLOAK-2276
Login page doesn't render properly when window height is less than 550px
2016-01-08 15:19:59 +01:00
Stian Thorgersen a90d7e54d4 Merge pull request #1992 from stianst/master
KEYCLOAK-2275
2016-01-08 15:19:38 +01:00
mhajas f9f1e36df6 Ignore DemoServletAdapterTest on EAP6 2016-01-08 14:49:48 +01:00
Stian Thorgersen bae2b62200 KEYCLOAK-2275
No Content-Security-Policy meta tag found on Cordova 5.x
2016-01-08 14:34:52 +01:00
Stian Thorgersen 71bcf697cc Merge pull request #1991 from stianst/master
KEYCLOAK-2272
2016-01-08 14:34:31 +01:00
mhajas 27f6390d00 Fix grantServerBasedApp test 2016-01-08 14:09:06 +01:00
Stian Thorgersen 9acb4b86aa Add note that JDK8 is required to build and to run the server 2016-01-08 13:56:07 +01:00
Stian Thorgersen dee0be4237 KEYCLOAK-2272
Update keycloak-datasources.xml and keycloak-infinispan.xml
2016-01-08 13:39:49 +01:00
mhajas 8c4f071003 Merge remote-tracking branch 'upstream/master' into eap64 2016-01-08 13:28:35 +01:00
Thomas Raehalme c4544e8caf Like other timestamps attribute value is now seconds since 1970. 2016-01-08 14:21:43 +02:00
Thomas Raehalme bca3893070 Required action TermsAndConditions now stores user attribute indicating acceptance of terms and conditions. 2016-01-08 13:14:04 +02:00
Vlasta Ramik c5fc4c0805 Merge remote-tracking branch 'upstream/master' into prod 2016-01-08 11:36:46 +01:00
vramik 48be6070d0 add support for prod bits 2016-01-08 11:13:59 +01:00
Bill Burke 280725a2ae Merge pull request #1985 from patriot1burke/master
KEYCLOAK-1990 KEYCLOAK-1991
2016-01-07 18:24:31 -05:00
Bill Burke 2892b093ab Merge remote-tracking branch 'upstream/master' 2016-01-07 17:25:58 -05:00
Bill Burke 78fe064cf0 2213 2016-01-07 17:25:47 -05:00
vramik 448a15b2ca install adapter via cli script from java code after start 2016-01-07 18:58:32 +01:00
Stian Thorgersen 30aaea73e4 Merge pull request #1989 from stianst/master
KEYCLOAK-2127 Re-enable set admin user with welcome page
2016-01-07 16:20:28 +01:00
Stian Thorgersen 4b1b697aa3 KEYCLOAK-2127 Re-enable set admin user with welcome page 2016-01-07 16:19:59 +01:00
Stian Thorgersen 112a44676d Merge pull request #1988 from stianst/KEYCLOAK-2269
KEYCLOAK-2269
2016-01-07 14:08:01 +01:00
Stian Thorgersen f7282d71e5 Merge pull request #1987 from stianst/master
KEYCLOAK-2252
2016-01-07 14:07:49 +01:00
Stian Thorgersen 9840c47970 Merge pull request #1986 from mhajas/master
KEYCLOAK-2127 Use add-user script for admin user creating
2016-01-07 13:17:47 +01:00
Stian Thorgersen 8695e16971 KEYCLOAK-2269
add-user script adds identityFederationEnabled field to keycloak-add-user.json
2016-01-07 13:17:10 +01:00
Stian Thorgersen 65f5ce9f13 KEYCLOAK-2252
Cannot delete client mapper with delete icon
2016-01-07 13:10:01 +01:00
Stian Thorgersen 77962ec896 Merge pull request #1984 from mstruk/providers-init
Prevent ProviderFactories being loaded twice
2016-01-07 11:57:12 +01:00
mhajas 54712e29aa Use user script for admin user creating 2016-01-07 11:24:51 +01:00
Bill Burke 71b6ed80ae Merge remote-tracking branch 'upstream/master' 2016-01-06 16:51:24 -05:00
Bill Burke 4a4bbf26f4 installation provider 2016-01-06 16:51:02 -05:00
Bill Burke 64de96d34b installation provider 2016-01-06 16:49:58 -05:00
Stian Thorgersen 084873f7fb Merge pull request #1981 from stianst/master
KEYCLOAK-2247 Upgrade to WildFly 10.0.0.CR5
2016-01-06 19:19:35 +01:00
Stian Thorgersen c684dac625 Tweak mem for Travis 2016-01-06 16:15:00 +01:00
Stian Thorgersen a5c159eeff KEYCLOAK-2247
Upgrade to WildFly 10.0.0.CR5
2016-01-06 16:15:00 +01:00
Bill Burke 1cbe5c4c80 Merge remote-tracking branch 'upstream/master' 2016-01-06 10:03:27 -05:00
Bill Burke 4a472b8272 KEYCLOAK-1990 KEYCLOAK-1991 2016-01-06 10:02:56 -05:00
Stian Thorgersen ddf74c0d9c Merge pull request #1983 from mstruk/ispn-conf
Fix missing offlineSessions local-cache config for demo-dist
2016-01-06 14:49:04 +01:00
Stian Thorgersen b2a3918fc3 Merge pull request #1982 from abstractj/KEYCLOAK-1919
Make use of display name by default for TOTP
2016-01-06 14:26:05 +01:00
Marko Strukelj aca00dd42c Prevent ProviderFactories being loaded twice 2016-01-05 23:07:13 +01:00
Marko Strukelj 2a8e868bc1 Fix missing offlineSession local-cache config for demo-dist 2016-01-05 22:56:44 +01:00
Stan Silvert 979205c827 Cleanup 2016-01-05 15:33:45 -05:00
Stan Silvert 55e36acfc0 For overwrite, delete then create.
Do all prepares to check for errors, then call doImport on each type.
Combine Realm Role and Client Role processing (RolesPartialImport).
2016-01-05 15:33:45 -05:00
Stan Silvert 4b6825806a Bare bones pagination for partial import results. 2016-01-05 15:33:44 -05:00
Stan Silvert 2d878805c1 Fix resource path for partial import events. 2016-01-05 15:33:43 -05:00
Stan Silvert dd038ddbd5 Add id to partial import results. 2016-01-05 15:33:43 -05:00
Stan Silvert f6a02bd408 Clean commit for partial import with single page for all imports. 2016-01-05 15:33:42 -05:00
Bruno Oliveira 7ec0dad88f Make use of display name by default for TOTP
- use realm name just in case of display name is not available
2016-01-05 18:31:13 -02:00
Marek Posolda 1e3ec1983d Merge pull request #1980 from mposolda/master
LDAP testing: added activation
2016-01-05 20:54:56 +01:00
mposolda 7ec02761ef LDAP testing: added activation 2016-01-05 20:53:25 +01:00
Bill Burke 7b30a6c9c4 Merge pull request #1979 from mposolda/master
Docs for LDAP mappers. Fix testsuite to pass with MSAD
2016-01-05 14:19:50 -05:00
Bill Burke 0d56713871 Merge pull request #1978 from patriot1burke/master
KEYCLOAK-2221
2016-01-05 14:19:33 -05:00
mposolda 658f204d92 Documentation for new LDAP mappers 2016-01-05 18:50:54 +01:00
mposolda 04401af470 Fix testsuite to pass with MSAD 2016-01-05 17:25:42 +01:00
Bill Burke 39d5a07218 KEYCLOAK-2221 2016-01-05 10:59:13 -05:00
Bill Burke a65f619c9a Merge pull request #1977 from mposolda/master
KEYCLOAK-2258 Removing leftovers of file model from docs and testsuite
2016-01-05 10:06:07 -05:00
Bill Burke 01c408ba68 Merge pull request #1975 from thomasdarimont/issue/KEYCLOAK-2256
KEYCLOAK-2256 - Guarantee deterministic ordering for custom user attributes in admin console.
2016-01-05 10:05:36 -05:00
Bill Burke 63975886cb Merge pull request #1974 from patriot1burke/master
set frameork for template config
2016-01-05 10:03:48 -05:00
Bill Burke c3f2ae1cd1 Merge pull request #1973 from thomasdarimont/issue/KEYCLOAK-2253
KEYCLOAK-2253 - Add support for ConfiguredProvider based UserFederationProviderFactory.
2016-01-05 10:03:40 -05:00
mposolda 133e4c59e5 KEYCLOAK-2258 Removing leftovers of file model from docs and testsuite 2016-01-05 15:25:22 +01:00
Marek Posolda d3247bc66a Merge pull request #1976 from mposolda/master
KEYCLOAK-2178 KEYCLOAK-1744 Added MSADUserAccountControlMapper. Remov…
2016-01-05 13:16:32 +01:00
mposolda b6718b44a1 KEYCLOAK-2178 KEYCLOAK-1744 Added MSADUserAccountControlMapper. Removing enableUserAccountControlAfterPasswordUpdate option 2016-01-05 12:11:48 +01:00
Thomas Darimont 15506e3db3 KEYCLOAK-2256 - Guarantee deterministic ordering for custom user attributes in admin console.
We now iterate over custom-user attributes in a deterministic way such that new attributes don't lead
to a complete reordering of the properties in the custom user attributes listings.
Previously the order of custom attributes in the user attributes listings was not deterministic which lead
to cases where keys that shared a common prefix where not placed at arbitrary positions.
Introduced a custom angularjs flter "toOrderedMapSortedByKey" that helps to deterministically iterate
over object properites.
2016-01-05 00:04:40 +01:00
Bill Burke 977f4051b3 Merge remote-tracking branch 'upstream/master' 2016-01-04 17:23:15 -05:00
Bill Burke 49c15f200e Merge pull request #1972 from dbarentine/master
KEYCLOAK-2255 Location header should return IdP alias instead of prov…
2016-01-04 17:18:42 -05:00
Bill Burke 3e5874b2a1 Merge pull request #1971 from abstractj/tooltip-initial-access-token
Tooltips for initial access token fields
2016-01-04 17:15:45 -05:00
Bill Burke f7ac5fae2a Merge pull request #1945 from raehalme/KEYCLOAK-1579
KEYCLOAK-1579: Replaced AdapterDeploymentContextBean with AdapterDeploymentContextFactoryBean
2016-01-04 17:15:25 -05:00
Bill Burke 22ba4847f4 Merge pull request #1965 from jean-merelis/translate
translation of messages to pt_BR
2016-01-04 17:14:55 -05:00
Bill Burke 90822e5b34 Merge pull request #1970 from abstractj/minor-update
Minor change for client registration documentation
2016-01-04 17:14:43 -05:00
Bill Burke 3f62cee836 Merge remote-tracking branch 'upstream/master' 2016-01-04 17:14:19 -05:00
Bill Burke 3bacbdf6ff set framework for template config 2016-01-04 17:13:15 -05:00
Thomas Darimont edcc39d906 KEYCLOAK-2253 - Use string representation for boolean properties in GenericUserFederationCtrl.
Adapted due to code review.
2016-01-04 23:07:08 +01:00
Thomas Darimont 3ec516d14c KEYCLOAK-2253 - Add support for ConfiguredProvider based UserFederationProviderFactory.
UserFederationProvidersResource is now aware of ConfiguredProvider and allows sophisticated
configuration of configuration properties via ProviderConfigProperty definitions.
See DummyUserFederationProviderFactory. getConfigProperties() for example.

Previously  UserFederationProvidersResource did only support simple key-value pairs for expressing
configurable options.

Tested this by launching a standalone KeycloakServer and creating a new Dummy UserFederationProvider.
The default values, labels and help messages are correctly displayed and the values are stored correctly.
2016-01-04 22:23:14 +01:00
Dane Barentine d8d0298498 KEYCLOAK-2255 Location header should return IdP alias instead of provider ID. 2016-01-04 11:30:57 -08:00
Thomas Raehalme 8356409b44 Fixed some typos in the docs and added paragraph regarding GrantedAuthoritiesMapper. 2016-01-04 21:16:37 +02:00
Thomas Raehalme 57971ce0b2 Changed docs to match the new code. 2016-01-04 21:09:36 +02:00
Stian Thorgersen b708cd671e Merge pull request #1969 from vmuzikar/ui-stability
[KEYCLOAK-1865] Enable LdapUserFederationTest#invalidSettingsTest - already fixed
2016-01-04 20:07:52 +01:00
Bruno Oliveira 1b857387f2 Minor change for client registration documentation 2016-01-04 16:31:39 -02:00
Bruno Oliveira cea70337ef Tooltips for initial access token fields 2016-01-04 15:49:57 -02:00
Bill Burke 6d5de7b44e Merge remote-tracking branch 'upstream/master' 2016-01-04 11:26:15 -05:00
Bill Burke 10eba78036 Merge remote-tracking branch 'upstream/master'
Conflicts:
	saml/saml-protocol/src/main/java/org/keycloak/protocol/saml/profile/ecp/SamlEcpProfileProtocolFactory.java
2016-01-04 11:25:14 -05:00
vramik efa112f820 updated version of xml plugin, fix adapter-libs-provided profile in eap6 adapter 2016-01-04 16:46:47 +01:00
Stian Thorgersen dd6b05224d Merge pull request #1968 from stianst/master
KEYCLOAK-2250
2016-01-04 14:33:39 +01:00
Stian Thorgersen e7009cac47 KEYCLOAK-2204 Add test to make sure disabled client can't refresh token 2016-01-04 13:15:58 +01:00
Stian Thorgersen eece3689f2 KEYCLOAK-2228
Deleting of realm when using JPA requires server restart
2016-01-04 13:04:33 +01:00
Vaclav Muzikar f48753f6e1 Enable LdapUserFederationTest#invalidSettingsTest - already fixed 2016-01-04 12:36:38 +01:00
Stian Thorgersen 392ce0b323 KEYCLOAK-2250
Infinispan offline sessions cache is missing from configuration files
2016-01-04 11:53:25 +01:00
Jean Merelis 2fce7f8498 fix doLogIn key (pt_BR) 2016-01-03 21:02:32 -02:00
Jean Merelis c5f19ff2b3 fix some missing translation (pt_BR) 2016-01-02 23:23:04 -02:00
Jean Merelis b24dfa0009 translation of messages to pt_BR 2016-01-02 00:37:47 -02:00
Stian Thorgersen a9b5d07263 Merge pull request #1964 from stianst/master
KEYCLOAK-2242
2015-12-23 14:39:41 +01:00
Stian Thorgersen eddf3eef17 KEYCLOAK-2242
Remove built-in admin account
2015-12-23 13:46:11 +01:00
Bill Burke dbac147419 client config refactor 2015-12-22 17:50:03 -05:00
Marek Posolda 6752a4f9b0 Merge pull request #1963 from mposolda/master
KEYCLOAK-1899 Added HardcodedLDAPRoleMapper
2015-12-22 20:43:09 +01:00
Pedro Igor 35804aa0df Merge pull request #1961 from pedroigor/KEYCLOAK-2202
[KEYCLOAK-2202] - Removing LoginProtocol in order to reuse SAML settings.
2015-12-22 13:48:54 -02:00
mposolda 41d22986d5 KEYCLOAK-1899 Added HardcodedLDAPRoleMapper 2015-12-22 16:22:02 +01:00
Pedro Igor 9172b5472e [KEYCLOAK-2202] - Removing LoginProtocol in order to reuse SAML settings. 2015-12-22 12:53:39 -02:00
Marek Posolda b27b0411a6 Merge pull request #1960 from mposolda/master
KEYCLOAK-2154 Group mapper fixes
2015-12-22 13:19:40 +01:00
mposolda 0c293089c3 KEYCLOAK-2154 Group mapper fixes 2015-12-22 12:32:37 +01:00
Marek Posolda 5403296ac6 Merge pull request #1959 from mposolda/master
KEYCLOAK-2154 Added Group mapper for LDAP. LDAP mappers improvements and fixes
2015-12-22 10:15:26 +01:00
mposolda 20548b402d Separate package for LDAP tests 2015-12-22 09:35:53 +01:00
mposolda 1747e0981f KEYCLOAK-2154 Added Group mapper for LDAP. LDAP mappers improvements and fixes 2015-12-22 08:54:09 +01:00
Bill Burke ea6374163d Merge pull request #1957 from stianst/master
KEYCLOAK-2043
2015-12-21 16:56:01 -05:00
Bill Burke 4782780857 Merge pull request #1958 from patriot1burke/master
refactor client create
2015-12-21 16:55:52 -05:00
Bill Burke b90409c5e4 refactor client create 2015-12-21 16:36:13 -05:00
Stian Thorgersen 9a921f66ff KEYCLOAK-2043
.well-known/openid-configuration doesn't set cache-control header
2015-12-21 15:35:23 +01:00
Stian Thorgersen 4a492ce13c Merge pull request #1956 from stianst/master
KEYCLOAK-2240
2015-12-21 14:29:17 +00:00
Stian Thorgersen 39904548eb KEYCLOAK-2240
Internationalize admin console title
2015-12-21 13:16:54 +01:00
Stian Thorgersen 18268f686c Merge pull request #1955 from stianst/master
Support for branding
2015-12-21 12:00:56 +00:00
mhajas 4463f6e1e1 Run adapter tests on EAP 6.4 + test fixes + hot fix of bad arquillian URL provider 2015-12-21 12:36:34 +01:00
Stian Thorgersen 1594e07628 KEYCLOAK-2239
Add link to keycloak.org to Keycloak logo
2015-12-21 12:15:36 +01:00
Stian Thorgersen 606e6fa479 KEYCLOAK-1934
Add display-name and display-name-html to realm
2015-12-21 12:15:13 +01:00
Stian Thorgersen 1afd3d422c Merge pull request #1952 from vmuzikar/ui-stability
KEYCLOAK-1865 Fix stability of some UI arquillian tests
2015-12-21 07:50:11 +00:00
Bill Burke 80fae7116b Merge pull request #1953 from patriot1burke/master
client template scope
2015-12-18 18:32:00 -05:00
Bill Burke 86a0995f29 fix test 2015-12-18 17:31:53 -05:00
Bill Burke a7c684b909 oops 2015-12-18 17:19:31 -05:00
Bill Burke 5caf3e0a2d Merge remote-tracking branch 'upstream/master' 2015-12-18 17:15:40 -05:00
Bill Burke d939b6a431 template scope 2015-12-18 17:15:27 -05:00
Vaclav Muzikar 42d17577d0 Upstream sync 2015-12-18 17:28:57 +01:00
Vaclav Muzikar eaf326dd37 Fix Client Mappers tests
(cherry picked from commit b9f9db0)
2015-12-18 17:18:59 +01:00
Vaclav Muzikar 53a542d1e2 Enable TokensTest (already fixed by previous commit bf70927)
(cherry picked from commit 6783bcb)
2015-12-18 17:15:20 +01:00
Vaclav Muzikar c51d5e9820 Fix PasswordPolicyTest
(cherry picked from commit 87b125e)
2015-12-18 17:15:18 +01:00
Vaclav Muzikar 817127a751 Fix + refactor SecurityDefensesTest
(cherry picked from commit a652173)
2015-12-18 17:15:16 +01:00
Vaclav Muzikar 0e6e3d10d8 Fix LoginSettingsTest
(cherry picked from commit bf70927)
2015-12-18 17:15:09 +01:00
vramik c759719e95 added support for set jdk for adapter container 2015-12-18 14:56:49 +01:00
vramik 19471d07b8 added support for set jdk for adapter container 2015-12-18 13:40:00 +01:00
vramik 57ea0a3b42 set default build to community eap6 2015-12-18 10:49:57 +01:00
Bill Burke 0197c69ac3 Merge pull request #1951 from pedroigor/KEYCLOAK-2202
[KEYCLOAK-2202] - Initial support for SAML ECP Profile.
2015-12-17 19:04:17 -05:00
vramik 6bb05bf339 fix 2015-12-18 00:23:19 +01:00
vramik d5950a615a exclude client tests from adapters 2015-12-18 00:15:03 +01:00
vramik 6af2e1054c eap6-adapter 2015-12-17 23:20:37 +01:00
vramik 53ca4b9294 integration-arquillian prod: add support for non default firefox 2015-12-17 10:27:42 +01:00
Stian Thorgersen 83eea5036f Merge pull request #1948 from pdrozd/wf10
Arquillian xsl templates - changed namespaces to WF10.
2015-12-17 09:01:14 +00:00
Pedro Igor 1b614a379b [KEYCLOAK-2202] - Initial support for SAML ECP Profile. 2015-12-16 18:46:52 -02:00
Bill Burke 0527d441e3 better logging 2015-12-16 12:23:41 -05:00
Marek Posolda 6569b22c79 Merge pull request #1950 from mposolda/master
Mongo fix
2015-12-16 14:36:27 +01:00
mposolda d0ec1c3b02 Mongo fix 2015-12-16 14:35:59 +01:00
Marek Posolda 2fe7e2a952 Merge pull request #1949 from mposolda/master
LDAP mappers enhancements
2015-12-16 14:33:54 +01:00
mposolda 0d52e4e6c5 Added sync support to UserFederationMapper 2015-12-16 13:52:11 +01:00
mposolda 358c273d39 KEYCLOAK-2227 Added UserRolesRetrieveStrategy. Possibility to read user role mappings through 'memberOf' attribute 2015-12-16 13:52:11 +01:00
mposolda 215d59b1e5 KEYCLOAK-2053 Memberships based on memberUid like attribute 2015-12-16 13:52:11 +01:00
mposolda 2b409b3462 Minor test fix 2015-12-16 13:52:11 +01:00
vramik aa0d463487 integration-arquillian prod: add jpa profile 2015-12-16 12:22:44 +01:00
Vlasta Ramik a418e71dc6 Merge branch 'master' of https://github.com/keycloak/keycloak into prod 2015-12-16 10:36:07 +01:00
Pavel Drozd b4e53b1677 Arquillian xsl templates - changed namespaces to WF10. 2015-12-16 10:26:10 +01:00
Marek Posolda 051f175f68 Merge pull request #1946 from dbarentine/master
KEYCLOAK-2229 Added depending on keycloak-broker-core module to resol…
2015-12-16 07:58:05 +01:00
Bill Burke fd447702e7 Merge pull request #1947 from patriot1burke/master
remove default client mappers when templated
2015-12-15 19:36:37 -05:00
Bill Burke ee79f5e69d remove default client mappers when templated 2015-12-15 17:37:53 -05:00
Dane Barentine de5baa9df7 KEYCLOAK-2229 Added depending on keycloak-broker-core module to resolve NoClassDefFoundError for BrokeredIdentityContext class 2015-12-15 11:15:55 -08:00
vramik e1de2c0661 integration-arquillian: add support for prod testing 2015-12-15 13:14:30 +01:00
Thomas Raehalme 566a58b5d8 Replaced AdapterDeploymentContextBean with AdapterDeploymentContextFactoryBean and added support for KeycloakConfigResolver. 2015-12-15 11:53:10 +02:00
Marek Posolda f837cbfaa9 Merge pull request #1944 from mposolda/master
KEYCLOAK-1906 Customized LDAP filter. LDAP conditions improvements
2015-12-14 14:50:38 +01:00
mposolda 06a55419f1 KEYCLOAK-1906 Customized LDAP filter. LDAP conditions improvements 2015-12-14 13:55:11 +01:00
Marek Posolda 82a573a536 Merge pull request #1939 from mhajas/master
KEYCLOAK-1667 Added adapter tests of SAML to integration arquillian
2015-12-14 09:26:32 +01:00
Stian Thorgersen d46bad56ae Merge pull request #1942 from keycloak/wildfly-10
KEYCLOAK-2223 Upgrade to WildFly 10.0.0.CR4
2015-12-13 21:04:38 +00:00
Marko Strukelj 32af1bd3a5 KEYCLOAK-2223 Upgrade to WildFly 10.0.0.CR4 2015-12-13 21:26:07 +01:00
Bill Burke 38b9d05cd7 Merge pull request #1941 from patriot1burke/master
client templates
2015-12-11 21:02:40 -05:00
Bill Burke e26e31d8b4 client template ui 2015-12-11 17:56:45 -05:00
Bill Burke 2328e0a6f9 Merge remote-tracking branch 'upstream/master' 2015-12-11 10:31:55 -05:00
Bill Burke 96e1813b34 client templates backend 2015-12-11 10:31:42 -05:00
mhajas 97357d020b Merge remote-tracking branch 'upstream/master' 2015-12-11 15:43:03 +01:00
Pavel Drozd b466cec4e5 Merge pull request #1940 from vramik/master
arquillian-testsuite: updated screenshooter version
2015-12-11 15:32:51 +01:00
Pavel Drozd 9228c6a16b Merge pull request #1938 from mhajas/fixDataTable
Fix adapter tests errors caused by changed DataTable fragment
2015-12-11 15:29:28 +01:00
Pavel Drozd 35f8e3c19f Merge pull request #1937 from pdrozd/ssl-required
Support for testing ssl-required.
2015-12-11 15:28:38 +01:00
vramik 9956f425eb arquillian-testsuite: updated screenshooter version 2015-12-11 12:15:27 +01:00
mhajas 5464e600ea Set SAMLServlet test abstract 2015-12-10 17:23:33 +01:00
mhajas cbdba622a5 Merge remote-tracking branch 'upstream/master' 2015-12-10 15:27:55 +01:00
mhajas 49e9965125 Fix timeouts after logout from servlet 2015-12-10 15:26:33 +01:00
mhajas dcaf7ea9d5 Fix test errors caused by changed DataTable fragment 2015-12-10 11:46:40 +01:00
Pavel Drozd 3f51f620b7 Support for testing ssl-required. 2015-12-10 07:21:23 +01:00
Marek Posolda 06e44b185e Merge pull request #1936 from mposolda/master
KEYCLOAK-2124 Post-Broker login flow support
2015-12-09 17:35:00 +01:00
mposolda 17a2bd266b KEYCLOAK-2124 post-broker login flow docs 2015-12-09 17:34:44 +01:00
mposolda 081db0d353 KEYCLOAK-2124 Post-Broker login flow support 2015-12-09 16:36:26 +01:00
mhajas b82346761c Merge remote-tracking branch 'upstream/master' 2015-12-09 10:53:50 +01:00
mhajas 595e7a92e2 Added SAML servlets adapter tests to integration-arquillian 2015-12-09 10:50:25 +01:00
mhajas fee1dea3e6 Added SAML example adapter tests to integration-arqullian 2015-12-09 10:48:53 +01:00
mhajas 9a58e1276a Added integration-arqullian servlet used in SAML tests 2015-12-09 10:45:56 +01:00
mhajas 1d401767d6 Added integration-arqullian SAML example page objects 2015-12-09 10:42:02 +01:00
mhajas 68e3b6c504 Added integration-arqullian SAML servlets page objects 2015-12-09 10:41:17 +01:00
mhajas 813ddf365e Added integration-arqullian keycloak-saml resources 2015-12-09 10:39:34 +01:00
mhajas edf3499662 Added integration-arqullian configuration for SAML adapter tests 2015-12-09 10:36:42 +01:00
Marek Posolda df26caed07 Merge pull request #1933 from vramik/clients
KEYCLOAK-2203, KEYCLOAK-2205
2015-12-09 10:28:56 +01:00
Marek Posolda 9f9067663f Merge pull request #1932 from mhajas/fixDataTable
Fix xpath for rows in DataTable fragment
2015-12-09 10:28:48 +01:00
Marek Posolda 0f3d8b8513 Merge pull request #1935 from thomasdarimont/patch-1
Fixed missing ':' in the JSON example.
2015-12-09 08:52:32 +01:00
mhajas 4ca3bf530f Merge remote-tracking branch 'upstream/master' into fixDataTable 2015-12-09 07:41:45 +01:00
Thomas Darimont c8c0a45ce4 Fixed missing ':' in the JSON example. 2015-12-08 18:45:25 +01:00
Stian Thorgersen 7313b843b9 Merge pull request #1934 from stianst/KEYCLOAK-1900-PASS-HASH
KEYCLOAK-1900 Password Hash SPI
2015-12-08 16:17:32 +01:00
Stian Thorgersen 321cac2ab8 KEYCLOAK-1900 Refactoring 2015-12-08 14:06:40 +01:00
tsudot 162dd4051d KEYCLOAK-1900 Add password hash SPI and provider
- Default encoder set to Pbkdf2PasswordEncoder
2015-12-08 13:25:59 +01:00
vramik cd19c1acdf fix tests witch fails with phantomjs 2015-12-08 08:40:40 +01:00
vramik 44ed912154 Merge branch 'master' of https://github.com/keycloak/keycloak into clients
Conflicts:
	testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/CreateClientForm.java
	testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/fragment/FlashMessage.java
	testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/fragment/OnOffSwitch.java
	testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/WaitUtils.java
	testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AbstractAuthTest.java
	testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientRolesTest.java
2015-12-07 15:45:02 +01:00
vramik 39856c32d1 Merge branch 'master' of https://github.com/keycloak/keycloak into clients
Conflicts:
	testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/CreateClientForm.java
	testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/fragment/FlashMessage.java
	testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/fragment/OnOffSwitch.java
	testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/WaitUtils.java
	testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/AbstractAuthTest.java
	testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientRolesTest.java
2015-12-07 15:44:34 +01:00
vramik d3a893b171 KEYCLOAK-2203 - Add new cluster node form doesn't validate host input 2015-12-07 15:28:39 +01:00
vramik ba861f227e added UI tests for client's tabs: clustering, installation 2015-12-07 15:09:24 +01:00
Tomas Kyjovsky 4a57bcc0b4 Merge pull request #1903 from tkyjovsk/master
Increased pageload timeout. Increased other timeouts for travis. Better handling of closeable alert messages.
2015-12-07 11:09:37 +01:00
Tomas Kyjovsky 87a8e017fa Disabled crudRole test, unstable. Role tests need rewrite. 2015-12-07 09:10:32 +01:00
Tomas Kyjovsky b8fe608aaf Merge upstream-master 2015-12-07 05:59:51 +01:00
mhajas d3e6b38a8e Fix xpath for DataTable row and tests 2015-12-04 14:26:24 +01:00
Marek Posolda 8589327cdd Merge pull request #1931 from mposolda/master
KEYCLOAK-2197 Fix broker tests to work with sybase. Added LoggingRule
2015-12-04 12:24:33 +01:00
vramik 1b936a1230 added UI tests for client scope 2015-12-04 12:04:39 +01:00
mposolda 45c490b640 KEYCLOAK-2197 Fix broker tests to work with sybase. Added LoggingRule 2015-12-04 11:44:30 +01:00
vramik 1dd3fc537b added UI tests for client mappers saml 2015-12-03 14:47:13 +01:00
Stian Thorgersen 73cf2404ff Merge pull request #1928 from stianst/master
KEYCLOAK-2176 Add default roles and actions to users created with add…
2015-12-03 13:30:29 +01:00
vramik c16b6e6a43 update ClientSettingsTest due to KEYCLOAK-1129 2015-12-03 12:49:29 +01:00
Stian Thorgersen 8d23422605 KEYCLOAK-2176 Add default roles and actions to users created with add-user script 2015-12-03 11:45:56 +01:00
Stian Thorgersen 9cd8d1612e Merge pull request #1926 from ssilvert/mappers-tooltip
Fix typo for mappers.tooltip
2015-12-03 11:44:39 +01:00
Stian Thorgersen 277faea1d0 Merge pull request #1924 from ppalaga/151202-rename-w9-subsystem-dir
Rename keycloak-wf9-subsystem directory to keycloak-wildfly-subsystem to match t
2015-12-03 10:53:36 +01:00
Stian Thorgersen 58c7b6090b Merge pull request #1919 from stianst/master
Cache fixes
2015-12-03 10:53:18 +01:00
Stian Thorgersen f45bb62fcc KEYCLOAK-2192
Class serialization issues when Realm and User caches are in ASYNC mode
2015-12-03 08:24:30 +01:00
Stian Thorgersen 34c3ffaae1 Ported AdminApiTest to use admin client 2015-12-03 08:24:23 +01:00
Stian Thorgersen a218cc3034 KEYCLOAK-2179 Cache fixes 2015-12-03 08:24:16 +01:00
Stan Silvert c62b3822f4 Fix typo for mappers.tooltip 2015-12-02 11:54:02 -05:00
Tomas Kyjovsky b0e9720f88 Increased arquillian timeouts. 2015-12-02 16:46:15 +01:00
Tomas Kyjovsky 6507f58b49 Merge upstream-master 2015-12-02 16:11:45 +01:00
Tomas Kyjovsky 46e2440d30 Refactoring of arquillian waiting methods. 2015-12-02 15:58:23 +01:00
vramik 9b51b6e43b Merge upstream/master into clients 2015-12-02 15:18:15 +01:00
Peter Palaga 4772b8401a KEYCLOAK-2099 fixup: Rename keycloak-wf9-subsystem directory to
keycloak-wildfly-subsystem to match the WF module it contains
2015-12-02 14:51:48 +01:00
vramik 2b25c120d4 added UI tests for client mappers oidc 2015-12-02 13:12:05 +01:00
Marek Posolda c19e65f93c Merge pull request #1922 from mposolda/master
Minor fixes in kerberos example
2015-12-02 12:15:18 +01:00
mposolda 87994e032d Minor fixes in kerberos example 2015-12-02 11:31:12 +01:00
Stian Thorgersen ee6753d31b KEYCLOAK-1813 KEYCLOAK-2182 Fixes enable/disable cache 2015-12-02 11:24:04 +01:00
Stian Thorgersen 09c18306c2 KEYCLOAK-2179
Realm and user cache is invalidated when added to other nodes
2015-12-02 11:23:54 +01:00
Marek Posolda 6124fd64f3 Merge pull request #1918 from mposolda/master
Fix typos
2015-12-02 10:25:15 +01:00
mposolda 2a03d23098 Fix typos 2015-12-02 08:51:20 +01:00
Stian Thorgersen ff806eae08 Version bump 2015-12-01 19:54:28 +01:00
Tomas Kyjovsky e44d6f9888 Merge upstream-master 2015-12-01 17:30:02 +01:00
Tomas Kyjovsky 4e79dde17f Removed travis profile from arq. testsuite. 2015-12-01 17:29:28 +01:00
Tomas Kyjovsky 29e05ecf0d Fixed arquillian wait intervals config. 2015-12-01 17:28:28 +01:00
Marek Posolda a388782f9b Merge pull request #1916 from mposolda/master
KEYCLOAK-2172 Added migration docs
2015-12-01 17:03:15 +01:00
mposolda 352ea30d20 KEYCLOAK-2172 Added migration docs 2015-12-01 17:02:31 +01:00
Marek Posolda 6e0444e17b Merge pull request #1915 from mposolda/master
KEYCLOAK-2172 Make Identity broker User Attribute mappers compatible …
2015-12-01 16:45:47 +01:00
Stian Thorgersen b3f0dc7399 Merge pull request #1914 from stianst/KEYCLOAK-2176
KEYCLOAK-2176
2015-12-01 16:37:56 +01:00
mposolda ad34d63cb3 KEYCLOAK-2172 Make Identity broker User Attribute mappers compatible with First Broker Login flow 2015-12-01 15:48:25 +01:00
Stian Thorgersen 703720fa43 Merge pull request #1912 from stianst/KEYCLOAK-2173
KEYCLOAK-2173 No such method on Infinispan on EAP6
2015-12-01 15:19:16 +01:00
Stian Thorgersen e01c789a93 KEYCLOAK-2176
User added by add-user script doesn't have access to account management
2015-12-01 15:14:40 +01:00
Stian Thorgersen 8064c88e3c Merge pull request #1913 from stianst/KEYCLOAK-2175
KEYCLOAK-2175
2015-12-01 14:41:55 +01:00
Stian Thorgersen b06e747d28 Merge pull request #1911 from stianst/KEYCLOAK-2174
KEYCLOAK-2174 javax/mail not found for DefaultEmailSenderProviderFactory
2015-12-01 14:33:28 +01:00
Stian Thorgersen f9b89df326 KEYCLOAK-2175
WildFly server overlay includes aesh/main as well as aesh/0.65
2015-12-01 14:32:05 +01:00
Stian Thorgersen 778a96c9e4 KEYCLOAK-2173 No such method on Infinispan on EAP6 2015-12-01 13:54:17 +01:00
Stian Thorgersen f6f6b6a258 KEYCLOAK-2174 javax/mail not found for DefaultEmailSenderProviderFactory 2015-12-01 13:49:22 +01:00
vramik c4f3bd3dda Merge upstream/master 2015-12-01 12:51:57 +01:00
Marek Posolda 9d5356a001 Merge pull request #1910 from mposolda/master
KEYCLOAK-2149 Fix possible NPE during migration
2015-12-01 12:35:27 +01:00
mposolda 32fb604c88 KEYCLOAK-2149 Fix possible NPE during migration 2015-12-01 11:41:32 +01:00
Marek Posolda b3ea8f3add Merge pull request #1909 from mposolda/master
KEYCLOAK-2171 Fix broker test with MySQL and Sybase
2015-12-01 10:04:57 +01:00
mposolda 382161c425 KEYCLOAK-2171 Fix broker test with MySQL and Sybase 2015-12-01 09:20:18 +01:00
Marek Posolda ec527da868 Merge pull request #1908 from mposolda/master
KEYCLOAK-1129 Implicit flow docs
2015-12-01 00:00:40 +01:00
mposolda 0038c1ce9a KEYCLOAK-1129 Implicit flow docs 2015-11-30 23:59:09 +01:00
Marek Posolda d8fb0f1540 Merge pull request #1906 from mposolda/master
KEYCLOAK-2167 EmailAsUsername not reflected during registration throu…
2015-11-30 23:45:41 +01:00
Bill Burke 866c11b25b Merge pull request #1907 from patriot1burke/master
KEYCLOAK-2059
2015-11-30 17:42:35 -05:00
Bill Burke 64f5d032ed KEYCLOAK-2059 2015-11-30 17:40:35 -05:00
mposolda 635310123e KEYCLOAK-2167 EmailAsUsername not reflected during registration through broker 2015-11-30 22:46:34 +01:00
Marek Posolda 0bf53ad0ab Merge pull request #1905 from mposolda/master
Minor fixes
2015-11-30 20:58:26 +01:00
mposolda bf7863b300 Minor fixes 2015-11-30 20:18:36 +01:00
Marek Posolda 07e12f3b5f Merge pull request #1904 from mposolda/master
Fixes
2015-11-30 20:05:46 +01:00
mposolda 0f3d2bbfb4 KEYCLOAK-2149 DB fixes. firstBrokerLogin migration 2015-11-30 18:57:31 +01:00
Tomas Kyjovsky ed30c4454a Increased arquillian timeouts for travis. 2015-11-30 17:09:57 +01:00
Tomas Kyjovsky 0d4771a763 Merge upstream-master 2015-11-30 16:48:25 +01:00
Tomas Kyjovsky a8317e0cc2 1) Pageload timeout set to 60s. Other timeouts set by arq props in arquillian.xml 2) Refactoring: FlashMessage --> AdminConsoleAlert and AccountManagementAlert 2015-11-30 16:43:18 +01:00
mposolda 5b61a10b55 KEYCLOAK-2061 Direct Access Grants disabled by default 2015-11-30 15:56:21 +01:00
mposolda ec327c99f4 KEYCLOAK-2152 KEYCLOAK-2061 Client switches changes. Support for response_types and grant_types in OIDC Client registration 2015-11-30 15:31:38 +01:00
Stian Thorgersen 0492d84b59 Merge pull request #1902 from stianst/master
KEYCLOAK-2158
2015-11-30 15:22:33 +01:00
vramik 6a7a823fb4 merge upstream/master 2015-11-30 14:59:44 +01:00
Bill Burke f394e2552a Merge pull request #1798 from girirajsharma/Keycloak-2044
[KEYCLOAK-2044] Cannot map multiple external roles into Keycloak roles through custom OIDC Identity Provider
2015-11-30 08:42:03 -05:00
Stian Thorgersen 5a686c4260 KEYCLOAK-2158
Add add-user-keycloak.sh to server overlays
2015-11-30 14:03:54 +01:00
Stian Thorgersen 642e93be93 Merge pull request #1901 from mstruk/adapter-install-cli
KEYCLOAK-2166 Name clash of bin/adapter-install.cli in adapter-dist and saml-adapter-dist
2015-11-30 13:52:41 +01:00
Stian Thorgersen 2a6851b01f Merge pull request #1900 from stianst/KEYCLOAK-2063
KEYCLOAK-2063 Fix verify email link from admin endpoint
2015-11-30 13:17:17 +01:00
Marko Strukelj 2726db0be9 KEYCLOAK-2166 Name clash of bin/adapter-install.cli in adapter-dist and saml-adapter-dist 2015-11-30 12:53:51 +01:00
Stian Thorgersen 61c2ec04a4 Merge pull request #1898 from velias/KEYCLOAK-2164
KEYCLOAK-2164 - removed Cancel button from 'Change password' screen in Account app
2015-11-30 12:45:39 +01:00
Stian Thorgersen 8d6a1d5a1d Merge pull request #1899 from stianst/master
Exclude admin console tests from Travis due to stability issues
2015-11-30 12:44:29 +01:00
Stian Thorgersen 233b1e2553 KEYCLOAK-2063 Fix verify email link from admin endpoint 2015-11-30 12:10:45 +01:00
Stian Thorgersen 956ea431c8 Merge pull request #1897 from mstruk/npe
KEYCLOAK-2039 NPE on startup if keycloak-server.json can't be found
2015-11-30 11:44:56 +01:00
Stian Thorgersen 265b6d5e2a Exclude admin console tests from Travis due to stability issues 2015-11-30 11:29:59 +01:00
Vlastimil Elias b22c28b20e KEYCLOAK-2164 - removed Cancel button from 'Change password' screen in
Account app
2015-11-30 11:05:22 +01:00
Stian Thorgersen 243acdd04e Merge pull request #1889 from stianst/KEYCLOAK-2131-VAL-MAP-NAME
KEYCLOAK-2131 Create mapper form doesn't validate name input
2015-11-30 10:55:33 +01:00
Stian Thorgersen c49394c308 Merge pull request #1888 from stianst/KEYCLOAK-2132-ROLE-SELECTOR
KEYCLOAK-2132
2015-11-30 10:51:44 +01:00
Marko Strukelj fd5cb84dd1 KEYCLOAK-2039 NPE on startup if keycloak-server.json can't be found
- fix NPE and throw RuntimeException if config file not found
2015-11-30 10:26:39 +01:00
Stian Thorgersen 54b5a6c41e Merge pull request #1896 from vramik/authFlows
arquillian-testsuite: auth flows tests
2015-11-30 09:52:12 +01:00
Stian Thorgersen 83fa03e8cc Merge pull request #1894 from mstruk/saml-subsystem
KEYCLOAK-1924 SAML adapter full subsystem EAP/Wildfly
2015-11-30 09:51:33 +01:00
Stian Thorgersen 6863b711e3 Merge pull request #1892 from gtudan/KEYCLOAK-2163
KEYCLOAK-2163: require user-admin role for clearing brute force detection status
2015-11-30 09:50:59 +01:00
Stian Thorgersen 2c5510284d Merge pull request #1891 from mstruk/wildfly-modules-rename
KEYCLOAK-2099 WildFly 10 adapter subsystem
2015-11-30 09:48:15 +01:00
Stian Thorgersen 96cfb895db Merge pull request #1890 from stianst/KEYCLOAK-2137-ROLE-NAME-MAP-DUP
Keycloak 2137 role name map dup
2015-11-30 09:47:23 +01:00
Gregor Tudan 46f947113c KEYCLOAK-2163: require user admin role for clearing bruteforce detection status 2015-11-30 08:56:26 +01:00
Marek Posolda fa4e32ddcb Merge pull request #1895 from mposolda/master
Implicit flow and hybrid flow. Client switches.
2015-11-28 09:02:52 +01:00
mposolda 57b60797ce KEYCLOAK-1129 Implicit flow: more work 2015-11-28 00:15:41 +01:00
Marko Strukelj 38d160fab2 KEYCLOAK-1924 SAML adapter full subsystem EAP/Wildfly 2015-11-27 22:49:35 +01:00
mposolda ef80b64d1c KEYCLOAK-1129 Implicit flow and Hybrid flow support 2015-11-27 22:28:38 +01:00
mposolda 8d2e4c0316 KEYCLOAK-2061 Add switches to enable/disable grant types for clients 2015-11-27 22:28:38 +01:00
Bill Burke ae83ad258b Merge pull request #1893 from patriot1burke/master
KEYCLOAK-2058
2015-11-27 15:27:08 -05:00
Bill Burke 5fa59262ce fix saml admin console 2015-11-27 15:24:56 -05:00
Marko Strukelj 373fc23fc0 KEYCLOAK-2099 WildFly 10 adapter subsystem 2015-11-27 20:46:20 +01:00
Stian Thorgersen 58dc8776d6 KEYCLOAK-2137 Select mapperTypeCreate contains Role Name Mapper twice 2015-11-27 16:13:50 +01:00
Stian Thorgersen 20212d8d70 KEYCLOAK-2131 Create mapper form doesn't validate name input 2015-11-27 16:01:22 +01:00
Stian Thorgersen cb20d360c4 KEYCLOAK-2132
Error message is not displyed when trying to select empty role.
2015-11-27 15:53:33 +01:00
Stian Thorgersen 8e127bf699 Merge pull request #1887 from stianst/KEYCLOAK-2111
KEYCLOAK-2111 Cannot select language on Login dialog on small resolution
2015-11-27 15:39:13 +01:00
Stian Thorgersen 4d24a874f9 KEYCLOAK-2111 Cannot select language on Login dialog on small resolution 2015-11-27 14:42:37 +01:00
Stian Thorgersen 7200996ae0 Merge pull request #1886 from stianst/master
KEYCLOAK-2156
2015-11-27 12:32:07 +01:00
Stian Thorgersen 34cc750b13 KEYCLOAK-2156
Unrecognized field identityFederationEnabled importing old realm json
2015-11-27 12:31:00 +01:00
Stian Thorgersen 0ad6d708da Merge pull request #1884 from stianst/KEYCLOAK-2106-JWT-FIX
KEYCLOAK-2106 HTTP 500 for unparsable refresh tokens
2015-11-27 10:54:08 +01:00
Stian Thorgersen c83e3bd2d1 KEYCLOAK-2106 HTTP 500 for unparsable refresh tokens 2015-11-27 08:59:23 +01:00
Stian Thorgersen 5ea880cfff Merge pull request #1880 from stianst/KEYCLOAK-2129-USRCACHE
KEYCLOAK-2139
2015-11-26 21:14:08 +01:00
Stian Thorgersen 4276328794 Merge pull request #1883 from stianst/KEYCLOAK-2147-FF
KEYCLOAK-2147
2015-11-26 21:07:46 +01:00
Stian Thorgersen 7c4c77d70e KEYCLOAK-2147 2015-11-26 20:24:33 +01:00
Stian Thorgersen 632216d53f KEYCLOAK-2144 Set locale cookie to http-only 2015-11-26 20:06:05 +01:00
Stian Thorgersen d5105164e9 Merge pull request #1882 from abstractj/KEYCLOAK-2048
KEYCLOAK-2148: Update HmacOTP to make use of SecureRandom
2015-11-26 19:40:52 +01:00
Stian Thorgersen 7a9e2db18f Merge pull request #1879 from abstractj/KEYCLOAK-2136
KEYCLOAK-2136: Unexpected error when trying to create mapper with aleady existing name
2015-11-26 19:40:04 +01:00
Bruno Oliveira 0d582a1326 KEYCLOAK-2148: Update HmacOTP to make use of SecureRandom 2015-11-26 15:53:56 -02:00
Bruno Oliveira a99df49bc9 KEYCLOAK-2136: Unexpected error when trying to create mapper with already existing name 2015-11-26 13:55:10 -02:00
Stian Thorgersen b996e88dbd KEYCLOAK-2139
UserCache invalidation does not work proper
2015-11-26 16:39:06 +01:00
Stian Thorgersen 426a2b46fc Merge pull request #1877 from stianst/KEYCLOAK-2129
KEYCLOAK-2129
2015-11-26 15:33:39 +01:00
Stian Thorgersen 4a020d545b Merge pull request #1876 from stianst/KEYCLOAK-2082
KEYCLOAK-2082
2015-11-26 12:43:05 +01:00
Stian Thorgersen ee363a4c56 KEYCLOAK-2129 2015-11-26 12:41:55 +01:00
Stian Thorgersen bf4d5f4df9 KEYCLOAK-2082
Cross site scripting issues
2015-11-26 10:12:43 +01:00
Stian Thorgersen 30ec60b4e2 Merge pull request #1849 from girirajsharma/KEYCLOAK-2117
[KEYCLOAK-2117] It is possible to add a user or group attribute with an empty key
2015-11-26 09:25:49 +01:00
Stian Thorgersen a744ecba9e Merge pull request #1875 from abstractj/KEYCLOAK-2057
KEYCLOAK-2057: DB error with JPA EventStore and long value of not-existing client
2015-11-26 09:25:08 +01:00
Stian Thorgersen e764461b1a Merge pull request #1874 from stianst/KEYCLOAK-2134-IFRAME
KEYCLOAK-2134 login-status-iframe.html without any parameter throws 5…
2015-11-26 08:19:28 +01:00
Bruno Oliveira f376facb48 KEYCLOAK-2057: DB error with JPA EventStore and long value of not-existing client 2015-11-26 01:32:05 -02:00
girirajsharma 31614df7c4 [KEYCLOAK-2117] It is possible to add a user or group attribute with an empty key 2015-11-26 00:41:19 +05:30
Stian Thorgersen 335f852600 Merge pull request #1869 from stianst/EMAIL
Email fixes
2015-11-25 20:05:45 +01:00
Stian Thorgersen c26aeb654b KEYCLOAK-2134 login-status-iframe.html without any parameter throws 500 with NullpointerException 2015-11-25 19:58:46 +01:00
Stian Thorgersen 969cc6eb9e Merge pull request #1873 from stianst/master
Ignore LdapUserFederationTest#invalidSettingsTest
2015-11-25 19:58:17 +01:00
Stian Thorgersen f5326e1f42 Ignore LdapUserFederationTest#invalidSettingsTest 2015-11-25 19:57:31 +01:00
Stian Thorgersen e664a4a6b2 Merge pull request #1868 from stianst/KEYCLOAK-2043
KEYCLOAK-2043 Set cache-control header in well-known endpoints
2015-11-25 19:55:45 +01:00
Stian Thorgersen c15571f65c Merge pull request #1866 from mhajas/master
Added ConfigTest to integration arquillian testsuite
2015-11-25 19:06:54 +01:00
Stian Thorgersen 1eacdc6904 KEYCLOAK-2043 Set cache-control header in well-known endpoints 2015-11-25 18:58:44 +01:00
Stian Thorgersen be040eaa18 KEYCLOAK-2133 KEYCLOAK-1782 2015-11-25 18:58:05 +01:00
Bill Burke 889679c715 Merge pull request #1872 from patriot1burke/master
KEYCLOAK-1970
2015-11-25 12:01:51 -05:00
Bill Burke 8ae3551c4d KEYCLOAK-1970 2015-11-25 12:01:28 -05:00
Bill Burke cfd4de033b Merge pull request #1871 from patriot1burke/master
2115 and 2114
2015-11-25 12:00:34 -05:00
Bill Burke d6e2bccb16 Merge pull request #1840 from velias/KEYCLOAK-2075
KEYCLOAK-2075 KEYCLOAK-2107 - support for SAML IsPassive mode
2015-11-25 10:35:00 -05:00
Bill Burke eeec89583e Merge remote-tracking branch 'upstream/master' 2015-11-25 10:18:37 -05:00
Bill Burke d2bdb74fef Merge pull request #1870 from patriot1burke/master
KEYCLOAK-2095
2015-11-25 10:18:15 -05:00
Bill Burke b04b124351 KEYCLOAK-2114 2015-11-25 10:13:44 -05:00
Bill Burke 067cb120f8 KEYCLOAK-2115 2015-11-25 09:58:57 -05:00
Bill Burke 0bab4e63fa KEYCLOAK-2095 2015-11-25 09:52:11 -05:00
Bill Burke b48f32380c Merge pull request #1867 from ramirost/feature/locale_ca
Added Catalan translations
2015-11-25 08:58:27 -05:00
Bill Burke 0c8f3f734d Merge pull request #1855 from Smartling/KEYCLOAK-1391
KEYCLOAK-1391: Return an HTTP 401 for API requests
2015-11-25 08:57:05 -05:00
Bill Burke 4f401c7547 Merge pull request #1848 from girirajsharma/KEYCLOAK-2121
[KEYCLOAK-2121] Adding user or group attributes using ENTER key deletes first attribute
2015-11-25 08:53:42 -05:00
Bill Burke df74338cbc Merge pull request #1850 from girirajsharma/KEYCLOAK-2113
[KEYCLOAK-2113] Cannot delete group
2015-11-25 08:52:26 -05:00
Vlastimil Elias e3060e5e58 rebased to latest master 2015-11-25 13:46:29 +01:00
Ramiro Sánchez 15309a94cc Added Catalan translations 2015-11-25 09:48:53 +01:00
vramik 2e39221b98 added UI tests for clients 2015-11-25 09:27:23 +01:00
Stian Thorgersen c05e21c049 Merge pull request #1863 from stianst/KEYCLOAK-2050
KEYCLOAK-2050 KEYCLOAK-2051 Fix notifications
2015-11-25 09:08:00 +01:00
mhajas 62d519ed37 fix phantomjs problem with ConfigTest 2015-11-25 08:42:41 +01:00
Vlastimil Elias 18fa03bf97 KEYCLOAK-2107 - support IsPassive mode in SAML SP adapter library
KEYCLOAK-2075 - added integration tests for both server and adapter side
2015-11-25 08:39:55 +01:00
Vlastimil Elias 0bdb05e152 KEYCLOAK-2075 - support for IsPassive mode in SAML IdP endpoint 2015-11-25 08:29:46 +01:00
mhajas 09af45201b Merge remote-tracking branch 'upstream/master' 2015-11-25 07:36:32 +01:00
Stian Thorgersen dd85c125cb KEYCLOAK-2050 KEYCLOAK-2051 Fix notifications 2015-11-25 07:28:27 +01:00
Stian Thorgersen 274838aa64 Merge pull request #1860 from stianst/KEYCLOAK-2118
KEYCLOAK-2118 OTP Policy form doesn't remember Number of Digits
2015-11-25 06:59:17 +01:00
Stian Thorgersen ecb39cda0c Merge pull request #1865 from ramirost/feature/locale_es
Feature/locale es
2015-11-25 06:58:36 +01:00
Stian Thorgersen 3685a185d4 Merge pull request #1859 from stianst/reset-pass
KEYCLOAK-1758 add-user script
2015-11-25 06:56:35 +01:00
Bill Burke 030a35476a Merge pull request #1864 from patriot1burke/master
sendError() handling
2015-11-24 18:46:59 -05:00
Ramiro Sánchez 4ffe86583b fixed Spanish translations 2015-11-25 00:17:09 +01:00
Ramiro Sánchez 24f765ceef Merge branch 'upstream/master' into fork/master
* upstream_master: (115 commits)
  KEYCLOAK-1964 Database field for passwordPolicy is too small
  KEYCLOAK-1971 REST end point does't validate password policies properly
  KEYCLOAK-2104 Add caching of message bundles and properties to ExtendingThemeManager
  KEYCLOAK-2116 - Fix Label of Regenerate Secret button.
  Tweak Travis again
  KEYCLOAK-1937 OpenID Connect Dynamic Client Registration
  fix null pointer
  remove empty password check in direct grant flow
  Updated Travis configuration
  Exclude .lastUpdated files from Travis cache
  KEYCLOAK-2119 OTP Policy form validates both TOTP and HOTP at the same time
  [KEYCLOAK-2119] OTP Policy form validates both TOTP and HOTP at the same time
  KEYCLOAK-2010
  remove empty password check
  default groups ui
  KEYCLOAK-1749 Add documentation and fixed clean-up of expired initial access tokens
  Remove unused import
  Fix missing group in angular $scope in GroupMembersCtrl.
  arquillian-testsuite: Customizable waiting timeouts in class WaitUtils. Changed time unit to MILLISECONDS.
  default groups
  ...
2015-11-24 23:52:24 +01:00
Bill Burke c729835c3e fix2 2015-11-24 17:25:05 -05:00
Bill Burke 507fa4c250 fix 2015-11-24 17:21:30 -05:00
Bill Burke bba781beee messed up 2015-11-24 17:19:55 -05:00
Bill Burke 980a1eca5e Merge remote-tracking branch 'upstream/master' 2015-11-24 16:48:40 -05:00
Bill Burke ff63c5552a sendError() handling' 2015-11-24 16:48:24 -05:00
Stian Thorgersen 985661c1b9 Merge pull request #1862 from stianst/KEYCLOAK-1964
KEYCLOAK-1964 Database field for passwordPolicy is too small
2015-11-24 22:04:52 +01:00
Stian Thorgersen b168656eab KEYCLOAK-2118 OTP Policy form doesn't remember Number of Digits 2015-11-24 22:04:37 +01:00
Stian Thorgersen 94ba87ac05 Merge pull request #1861 from stianst/KEYCLOAK-1971
KEYCLOAK-1971 REST end point does't validate password policies properly
2015-11-24 21:55:16 +01:00
Stian Thorgersen cfc28b861b KEYCLOAK-1758 add-user script 2015-11-24 21:54:58 +01:00
Stian Thorgersen 38408658f9 Merge pull request #1857 from thomasdarimont/issue/KEYCLOAK-2116
KEYCLOAK-2116 - Fix Label of Regenerate Secret button.
2015-11-24 21:23:44 +01:00
Stian Thorgersen 998bb9986f Merge pull request #1853 from stianst/KEYCLOAK-2104
KEYCLOAK-2104 Add caching of message bundles and properties to Extend…
2015-11-24 21:22:02 +01:00
Stian Thorgersen 8d2a95d66b KEYCLOAK-1964 Database field for passwordPolicy is too small 2015-11-24 20:57:41 +01:00
Stian Thorgersen 500bced6ee KEYCLOAK-1971 REST end point does't validate password policies properly 2015-11-24 20:50:41 +01:00
Stian Thorgersen 81960a6996 KEYCLOAK-2104 Add caching of message bundles and properties to ExtendingThemeManager 2015-11-24 20:23:20 +01:00
Stian Thorgersen ccd456dba6 Merge pull request #1858 from stianst/master
Tweak Travis again
2015-11-24 20:23:14 +01:00
Thomas Darimont bac39bc71e KEYCLOAK-2116 - Fix Label of Regenerate Secret button. 2015-11-24 20:11:55 +01:00
Stian Thorgersen a8c2e79565 Tweak Travis again 2015-11-24 20:08:41 +01:00
Marek Posolda d6089597ff Merge pull request #1847 from gerbermichi/password
remove empty password check
2015-11-24 17:23:51 +01:00
Stian Thorgersen c901fc7480 Merge pull request #1845 from stianst/client-reg
Client reg
2015-11-24 16:33:55 +01:00
Stian Thorgersen 4f2b97de7f KEYCLOAK-1937
OpenID Connect Dynamic Client Registration

KEYCLOAK-1938
Register clients from SAML Entity Descriptors
2015-11-24 15:39:36 +01:00
Michael Gerber 9a3e023c43 fix null pointer 2015-11-24 13:54:33 +00:00
Michael Gerber 142ef50728 remove empty password check in direct grant flow 2015-11-24 11:11:16 +00:00
Stian Thorgersen d2ba4669ab Merge pull request #1856 from stianst/master
Updated Travis configuration
2015-11-24 10:57:08 +01:00
Stian Thorgersen ba0b59bfd0 Updated Travis configuration 2015-11-24 10:00:58 +01:00
Scott Rossillo f1c3295cec KEYCLOAK-1391: Return an HTTP 401 for API requests
Non browser HTTP requests shouldn't redirect to the Keycloak login
page. Instead, return an HTTP 401 with a proper WWW-Authenticate
header.
2015-11-23 10:46:14 -05:00
Stian Thorgersen 04ddf7ba4d Merge pull request #1854 from stianst/master
Exclude .lastUpdated files from Travis cache
2015-11-23 14:01:46 +01:00
mhajas 8f346a5f59 Merge remote-tracking branch 'origin/master' 2015-11-23 13:12:23 +01:00
mhajas 22e3abdaa8 added ConfigTest for events 2015-11-23 13:11:55 +01:00
Stian Thorgersen f1af3e9fb7 Exclude .lastUpdated files from Travis cache 2015-11-23 13:08:13 +01:00
Stian Thorgersen 5e479ba4df Merge pull request #1852 from stianst/master
KEYCLOAK-2119
2015-11-23 12:48:16 +01:00
Stian Thorgersen f6743eff69 KEYCLOAK-2119
OTP Policy form validates both TOTP and HOTP at the same time
2015-11-23 12:02:39 +01:00
Stian Thorgersen 5a761f2f3a Merge pull request #1851 from girirajsharma/KEYCLOAK-2119
[KEYCLOAK-2119] OTP Policy form validates both TOTP and HOTP at the same time
2015-11-23 11:59:00 +01:00
Stian Thorgersen 261d32f8e7 Merge pull request #1841 from vramik/master
arquillian-testsuite: Customizable waiting timeouts in class WaitUtil…
2015-11-23 11:26:22 +01:00
Stian Thorgersen 282e702ef6 Merge pull request #1836 from tkyjovsk/master
KEYCLOAK-1646 Added adapter test module for EAP6
2015-11-23 11:23:29 +01:00
Stian Thorgersen cc014fe0e5 Merge pull request #1844 from lkubik/unusedImport
Remove unused import
2015-11-23 11:21:13 +01:00
girirajsharma 95f62901c2 [KEYCLOAK-2119] OTP Policy form validates both TOTP and HOTP at the same time 2015-11-22 23:04:45 +05:30
girirajsharma cf8b0abaad [KEYCLOAK-2113] Cannot delete group 2015-11-22 20:52:31 +05:30
girirajsharma e761fb24e6 [KEYCLOAK-2121] Adding user or group attributes using ENTER key deletes first attribute 2015-11-22 16:14:34 +05:30
Bill Burke b1deed67df Merge remote-tracking branch 'upstream/master' 2015-11-21 08:58:15 -05:00
Bill Burke d3cadc9a47 saml error handling 2015-11-21 08:58:02 -05:00
Bill Burke 32e069eadc Merge pull request #1846 from patriot1burke/master
default groups UI
2015-11-20 19:18:21 -05:00
Bill Burke 17c97c2f68 KEYCLOAK-2010 2015-11-20 16:18:42 -05:00
Bill Burke 48bb4d86e0 Merge pull request #1842 from thomasdarimont/issue/missing-groupid-membersctrl
Fix missing group in angular $scope in GroupMembersCtrl.
2015-11-20 16:07:37 -05:00
Michael Gerber eda018ba0a remove empty password check 2015-11-20 18:42:56 +01:00
Bill Burke ac1baa059f Merge pull request #1797 from raehalme/KEYCLOAK-2041
KEYCLOAK-2041 Use sendError instead of setStatus to report errors
2015-11-20 11:50:37 -05:00
Bill Burke 670b620da7 Merge remote-tracking branch 'upstream/master' 2015-11-20 10:41:19 -05:00
Bill Burke 1545593cde default groups ui 2015-11-20 10:41:08 -05:00
Stian Thorgersen aedd23a43d Merge pull request #1843 from stianst/client-reg
KEYCLOAK-1749 Add documentation and fixed clean-up of expired initial…
2015-11-19 19:58:42 +01:00
Stian Thorgersen 7e8c80c0df KEYCLOAK-1749 Add documentation and fixed clean-up of expired initial access tokens 2015-11-19 16:11:41 +01:00
Lukas Kubik 9f6813fcad Remove unused import 2015-11-19 15:15:55 +01:00
Thomas Darimont 14292843ff Fix missing group in angular $scope in GroupMembersCtrl.
Previously navigating to the group members tab of a group breaks other groups links (RoleMappings, Attributes etc.) because the groupId part of the url is missing.
 One sees:
 /auth/admin/master/console/#/realms/master/groups//role-mappings
 Instead of:
 /auth/admin/master/console/#/realms/master/groups/0f77aeed-7d16-4938-9fcc-c74b1125e5e0/role-mappings
2015-11-19 13:54:18 +01:00
vramik 71e25bcd65 arquillian-testsuite: Customizable waiting timeouts in class WaitUtils. Changed time unit to MILLISECONDS. 2015-11-19 13:14:30 +01:00
Bill Burke 9f1fa5ebb9 Merge pull request #1839 from patriot1burke/master
default groups back end
2015-11-18 20:59:46 -05:00
Bill Burke 98958a2bc4 default groups 2015-11-18 19:40:30 -05:00
Bill Burke 7da9f8085d Merge pull request #1838 from patriot1burke/master
groups: resolve roles, and mongo fixes
2015-11-18 16:19:17 -05:00
Bill Burke 6989589e72 Merge remote-tracking branch 'upstream/master' 2015-11-18 15:24:45 -05:00
Bill Burke 4f00f6cceb group mongo 2015-11-18 15:24:27 -05:00
Stian Thorgersen 95e729b0b7 Merge pull request #1832 from stianst/client-reg
KEYCLOAK-2085
2015-11-18 19:34:47 +01:00
Tomas Kyjovsky 38c460de82 KEYCLOAK-1646 Added module for adapter tests on EAP6. Using 'wildfly-arquillian-container-managed' instead of 'jboss-as-arquillian-container-managed' for both EAP6 and AS7 adapter tests. 2015-11-18 18:21:46 +01:00
Bill Burke 41331111da resolve conflicts 2015-11-18 09:39:19 -05:00
Bill Burke bff334d365 group token/assertion and tests 2015-11-18 09:36:47 -05:00
Stian Thorgersen 41c9289f14 KEYCLOAK-1749 Moved clien registration api 2015-11-18 15:09:32 +01:00
Marek Posolda 1d06d9dd64 Merge pull request #1834 from mposolda/master
KEYCLOAK-2102 added AbstractKerberosTest.caseInsensitiveTest
2015-11-18 14:05:46 +01:00
Stian Thorgersen ec9b2933cc Merge pull request #1833 from thomasdarimont/issue/KEYCLOAK-2101
KEYCLOAK-2101 - Ensure consistent property order in json configuration export.
2015-11-18 13:30:15 +01:00
Stian Thorgersen 1ff5d6eb06 KEYCLOAK-2085 Internationalization in client initial access controller 2015-11-18 13:25:08 +01:00
mposolda bc22abf8cb KEYCLOAK-2102 added AbstractKerberosTest.caseInsensitiveTest 2015-11-18 12:35:17 +01:00
Marek Posolda 81eb1e1e30 Merge pull request #1830 from bagges/master
[KEYCLOAK-2102] treat principal name case insensitive
2015-11-18 12:35:06 +01:00
Stian Thorgersen e8cb3a416d KEYCLOAK-2085 Added initial access token support to admin console 2015-11-18 10:33:27 +01:00
Stian Thorgersen 764c20d748 KEYCLOAK-2085 Initial access tokens for client registration 2015-11-18 10:33:24 +01:00
Thomas Darimont c81d0c0898 KEYCLOAK-2101 - Ensure consistent order for properties in json configuration export.
We now explicitly order the AuthenticatorFlows, AuthenticatorConfig, as well
as RequiredActions to ensure a consistent order for the configuration export to make
it easier to diff / version keycloak configuration files.
Previously the order of the json properties of an configuration export were
non deterministic. The configuration file could look partially different after a
 export, import, export sequence even if no changes were made.
2015-11-17 22:34:21 +01:00
Stian Thorgersen 67fca8f1f3 Merge pull request #1831 from abstractj/KEYCLOAK-2100
KEYCLOAK-2100: 500 Internal Server Error with Update the events provider via Admin REST API
2015-11-17 20:35:48 +01:00
Bruno Oliveira 22c5c803ca KEYCLOAK-2100: 500 Internal Server Error with Update the events provider via Admin REST API 2015-11-17 14:04:24 -02:00
Stian Thorgersen f6d716a386 Merge pull request #1829 from stianst/client-reg
KEYCLOAK-1749 Rotate registration access token, add registration acce…
2015-11-17 13:29:53 +01:00
Stian Thorgersen 62c5bc0e91 KEYCLOAK-1749 Rotate registration access token, add registration access token to admin console 2015-11-17 09:44:50 +01:00
Markus Backes 5e329d7b29 Merge branch 'master' of https://github.com/keycloak/keycloak 2015-11-17 09:32:41 +01:00
Markus Backes 1bd9b18803 treat principal name case insensitive
* Kerberos login with active directory failed with invalid username or password because AD treats principal names in a case insensitive way (https://ssimo.org/blog/id_016.html)
2015-11-17 09:32:14 +01:00
Stian Thorgersen 96fe4269ec Merge pull request #1828 from abstractj/KEYCLOAK-2065
KEYCLOAK-2065: Update the client via Admin REST API causes 500 Internal Server Error
2015-11-17 08:31:54 +01:00
Stian Thorgersen 83ff02ea53 Merge pull request #1825 from stianst/client-reg
KEYCLOAK-1749 Client registration service
2015-11-16 20:23:55 +01:00
Stian Thorgersen 1df741a307 Merge pull request #1826 from lkubik/changeAllJettyToProvided
KEYCLOAK-2081
2015-11-16 20:23:31 +01:00
Bruno Oliveira 409356f734 KEYCLOAK-2065: Update the client via Admin REST API causes 500 Internal Server Error 2015-11-16 16:32:52 -02:00
Stian Thorgersen bad0a95123 KEYCLOAK-1749 Client registration service
Changed endpoints of client registration to just clients

Started installation

Added adapter config retrival to client reg
2015-11-16 13:24:56 +01:00
Stian Thorgersen 1bc08fff16 Merge pull request #1823 from abstractj/KEYCLOAK-2056
KEYCLOAK-2056: Removal of file model provider
2015-11-16 08:33:56 +01:00
Marek Posolda ab436705c8 Merge pull request #1827 from mposolda/broker-reauthentication
KEYCLOAK-1750 First broker login - migration, documentation. Other minor fixes
2015-11-13 20:10:28 +01:00
mposolda ea7709a104 KEYCLOAK-2026 Fix realm.getMasterAdminClient() in JPA and Mongo models 2015-11-13 18:51:09 +01:00
mposolda 1d5a01577e KEYCLOAK-1750 First broker login - migration 2015-11-13 18:51:09 +01:00
mposolda 4288260aa6 KEYCLOAK-1822 Don't redirect to login theme when error during link identity in account mgmt. 2015-11-13 18:51:09 +01:00
mposolda 600d1f8a56 KEYCLOAK-1750 First broker login - docs 2015-11-13 18:51:09 +01:00
Bruno Oliveira f7b1af7e11 Removal of module keycloak-connections-file 2015-11-13 13:44:15 -02:00
Bruno Oliveira 4b0e33e388 KEYCLOAK-2056: Removal of file model provider 2015-11-13 13:44:15 -02:00
Stian Thorgersen 8caaabb2e5 Merge pull request #1820 from thomasdarimont/issue/KEYCLOAK-2068-NPE-in-KeycloakOidcFilter
KEYCLOAK-2068 - Fix Potential NPE when using Servlet-Filter Adapter.
2015-11-13 16:00:34 +01:00
Stian Thorgersen 1bd0e23f31 Merge pull request #1824 from bystrikhorvath/master
KEYCLOAK-2077: correcting paths in custom-attributes.xml
2015-11-13 15:53:31 +01:00
Lukas Kubik 13a52c1bb2 KEYCLOAK-2081
Change scope of jetty dependencies to provided
2015-11-13 15:43:11 +01:00
Bill Burke fa7a7d35a9 Merge remote-tracking branch 'upstream/master' 2015-11-13 09:30:37 -05:00
Bill Burke fe5809db4d token group roles 2015-11-13 09:30:25 -05:00
Bill Burke 1510d9672a Merge pull request #1803 from gerbermichi/user
KEYCLOAK-2024 - username guessing
2015-11-13 08:53:05 -05:00
Bill Burke 9b93468131 Merge pull request #1818 from patriot1burke/master
group membership ui
2015-11-13 08:49:23 -05:00
bystrikhorvath 2e16a55815 KEYCLOAK-2077: correcting paths in custom-attributes.xml 2015-11-13 14:00:20 +01:00
Marek Posolda f65665b5eb Merge pull request #1822 from mposolda/broker-reauthentication
KEYCLOAK-1750 first broker login - events and tests
2015-11-13 10:27:38 +01:00
mposolda ce4a865579 KEYCLOAK-1750 First broker login - tests 2015-11-13 09:32:46 +01:00
mposolda f2e4e67ba0 KEYCLOAK-1750 First broker login - events 2015-11-13 09:32:46 +01:00
Stian Thorgersen 37f1eaae0e Merge pull request #1821 from stianst/master
KEYCLOAK-2037 Update documentation
2015-11-13 09:04:17 +01:00
Stian Thorgersen 6c3a3517b8 KEYCLOAK-2037 Update documentation 2015-11-13 09:03:58 +01:00
Thomas Darimont c4416a25e0 KEYCLOAK-2068 - Fix Potential NPE when using Servlet-Filter Adapter.
When using the `org.keycloak.adapters.servlet.KeycloakOIDCFilter` a `NullPointerException`
can be thrown in the `org.keycloak.adapters.servlet.FilterSessionStore` within the `getParam`
method of the generated wrapper in `buildWrapper` when the `content-type` is not set.
Since the `content-type` is only used to parse the body. We just check whether the `body`
is `null` and if so avoid touching the `content-type` which prevents the NPE.

If the `body` is null we return an empty `MultivaluedHashMap` for the parameters.
2015-11-13 00:14:34 +01:00
Bill Burke 550f773293 Merge remote-tracking branch 'upstream/master' 2015-11-12 13:16:50 -05:00
Bill Burke d7ea66ad44 group membership ui 2015-11-12 13:16:30 -05:00
Bill Burke 2022a8d36b Merge pull request #1817 from patriot1burke/master
user group membership ui
2015-11-12 13:09:37 -05:00
Bill Burke 0d20e3c7ff Merge remote-tracking branch 'upstream/master' 2015-11-12 11:31:55 -05:00
Bill Burke 21119604c6 user group membership 2015-11-12 11:31:44 -05:00
Stian Thorgersen 973609d39b Merge pull request #1816 from stianst/master
KEYCLOAK-2066
2015-11-12 14:44:03 +01:00
Stian Thorgersen 77bccda7a4 KEYCLOAK-2066
View details on import client not working
2015-11-12 14:03:09 +01:00
Stian Thorgersen 0c9f0ea3e6 Merge pull request #1813 from vmuzikar/missing-ids
Add missing IDs to some UI elements; add POs to Client Mappers
2015-11-12 13:36:19 +01:00
Stian Thorgersen 73197332c4 Merge pull request #1814 from pdrozd/federation-tests
Add Federation tests for admin console.
2015-11-12 13:36:03 +01:00
Stian Thorgersen ee0dd7e200 Merge pull request #1815 from abstractj/KEYCLOAK-2064
KEYCLOAK-2064: Update pax-web to make use of SecureRandom
2015-11-12 13:35:33 +01:00
Bruno Oliveira 9203971809 KEYCLOAK-2064: Update pax-web to make use of SecureRandom 2015-11-12 09:46:45 -02:00
Pavel Drozd 4e7fe1de8d Add Federation tests for admin console. 2015-11-12 12:23:37 +01:00
Stian Thorgersen 4646a4aceb Merge pull request #1811 from stianst/master
KEYCLOAK-2060
2015-11-12 11:59:00 +01:00
Stian Thorgersen 64baa28301 Merge pull request #1810 from lkubik/updateJettyScope
Change scope of jetty dependencies in jetty-adapter-spi
2015-11-12 09:23:44 +01:00
Stian Thorgersen db84571546 Merge pull request #1807 from vramik/KEYCLOAK-2031
KEYCLOAK-2031: Input validation in OTP Policy page fix, test
2015-11-12 09:23:13 +01:00
Stian Thorgersen 99cddcef6c Merge pull request #1805 from velias/KEYCLOAK-2033
KEYCLOAK-2033 - Allow custom SPI Providers to show additional info on
2015-11-12 09:21:38 +01:00
Stian Thorgersen 1891019067 Merge pull request #1802 from equinux/pr/fix-js-parameter-encoding
Fix parameter encoding in JS adapter
2015-11-12 09:19:21 +01:00
Stian Thorgersen b0b4d26fa3 KEYCLOAK-2060
Upgrade to WildFly 9.0.2.Final
2015-11-12 09:17:47 +01:00
Bill Burke 6cc76b2e3d Merge pull request #1788 from patriot1burke/master
groups data model
2015-11-11 19:38:01 -05:00
Bill Burke 33ac048c8c resolve conflicts 2015-11-11 18:06:39 -05:00
Bill Burke e25157655b group ui 2015-11-11 18:03:53 -05:00
Stian Thorgersen 213abb87ba Merge pull request #1808 from stianst/master
KEYCLOAK-2055
2015-11-11 20:24:08 +01:00
Lukas Kubik 825a68c6c9 Change scope of jetty dependencies in jetty-adapter-spi. 2015-11-11 17:01:46 +01:00
Stian Thorgersen 816ed9419b Merge pull request #1809 from lkubik/unifyJettyVersionWithOthers
Unify jetty version in keycloak-jetty-adapter-spi with other jetty versions
2015-11-11 16:10:17 +01:00
Stian Thorgersen 15f1a38b51 KEYCLOAK-2055
Invalid links in docs index.html
2015-11-11 14:32:43 +01:00
Lukas Kubik 1f75f85a20 Unify jetty version in keycloak-jetty-adapter-spi with other versions 2015-11-11 13:58:22 +01:00
Vaclav Muzikar dfb39d13a2 Removed IDs from Password Policy
(cherry picked from commit 35376b7)
2015-11-11 12:00:44 +01:00
Bill Burke b8391e0935 Merge pull request #1778 from girirajsharma/keycloak-1994
[KEYCLOAK-1994] It's not possible to create flow with same name as deleted nested flow
2015-11-10 10:58:57 -05:00
vramik ab56460325 KEYCLOAK-2031: Input validation in OTP Policy page fix, test 2015-11-10 16:57:29 +01:00
Vaclav Muzikar 059ebacffc Removed IDs from redirect URIs and Web Origins in Client
(cherry picked from commit 5c68854)
2015-11-10 15:46:55 +01:00
Stian Thorgersen e1a07bd5a8 Merge pull request #1806 from tkyjovsk/karaf-fuse-update
Karaf fuse update
2015-11-10 15:28:36 +01:00
Tomas Kyjovsky 37d7182fc9 Merge upstream-master into karaf-fuse-update
Conflicts:
	testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/KeycloakArquillianExtension.java
2015-11-10 13:44:23 +01:00
Tomas Kyjovsky e1ba26bcae KEYCLOAK-1661 Added support for testing adapters/examples on fuse 6.2. Moved CustomKarafContainer from the base module to the adapters/karaf module. 2015-11-10 13:39:59 +01:00
Vlastimil Elias b39146f6f5 KEYCLOAK-2033 - Allow custom SPI Providers to show additional info on
Server Info page
2015-11-10 12:55:36 +01:00
Marek Posolda caea1a3458 Merge pull request #1804 from mposolda/broker-reauthentication
KEYCLOAK-1750 First broker login changes
2015-11-10 11:52:47 +01:00
Dominique d'Argent 7ef747e7c4 Fix parameter encoding in JS adapter
- fixes https://issues.jboss.org/browse/KEYCLOAK-2047
- relates to keycloak/keycloak-js-bower#7
2015-11-10 11:20:06 +01:00
mposolda 4ca442d1b2 KEYCLOAK-1750 Option updateProfileOnFirstLogin moved from IdentityProvider to IdpReviewProfile authenticator 2015-11-10 11:06:23 +01:00
mposolda 99e75c69a0 KEYCLOAK-1750 First broker login - support for change password after first social login 2015-11-10 10:25:31 +01:00
Michael Gerber 1437f7da35 KEYCLOAK-2024 - username guessing 2015-11-10 09:04:10 +01:00
Stian Thorgersen fa9abbf016 Merge pull request #1801 from vramik/KEYCLOAK-2046
KEYCLOAK-2046 Remove JIRA checker extension
2015-11-10 07:50:24 +01:00
vramik 6bce32ba62 arquillian-testsuite: auth flows test 2015-11-09 15:59:34 +01:00
vramik ee801c2c32 arquillian-testsuite: KEYCLOAK-2046 2015-11-09 15:03:17 +01:00
Marek Posolda 2b23497f92 Merge pull request #1799 from mposolda/broker-reauthentication
KEYCLOAK-1750 Improve first time login with social. Added 'first brok…
2015-11-09 13:15:33 +01:00
Stian Thorgersen 04ba5c235e Merge pull request #1800 from stianst/master
Disable JIRA checker extension - this should be removed completely
2015-11-09 13:05:04 +01:00
Stian Thorgersen 1521f56225 Disable JIRA checker extension - this should be removed completely 2015-11-09 12:11:20 +01:00
Stian Thorgersen 251adbba0b Fix OTPPolicyTest 2015-11-09 12:10:19 +01:00
mposolda adbf2b22ad KEYCLOAK-1750 Improve first time login with social. Added 'first broker login' flow 2015-11-09 10:34:55 +01:00
Stian Thorgersen 2b29c3acf4 Merge pull request #1795 from abstractj/KEYCLOAK-2031
Input validation in OTP Policy page
2015-11-09 10:08:38 +01:00
Stian Thorgersen 076690e21e Merge pull request #1794 from tkyjovsk/karaf-fuse-update
Adapter tests for Karaf: Fuse Example installation now done via JMX i…
2015-11-09 10:08:27 +01:00
Stian Thorgersen b586f93182 Merge pull request #1793 from stianst/KEYCLOAK-2037
KEYCLOAK-2037 Fix domain mode for server-dist
2015-11-09 10:08:03 +01:00
Stian Thorgersen 5a318df041 Merge pull request #1791 from vramik/uitests
arquillian-testsuite add UI tests, page objects refactoring
2015-11-09 10:02:23 +01:00
Stian Thorgersen cd01ea49b4 Merge pull request #1777 from girirajsharma/keycloak-1993
[KEYCLOAK-1993] It's possible to create new authentication flow with empty name within another flow
2015-11-09 09:54:07 +01:00
girirajsharma dd2824ab20 [KEYCLOAK-2044] Cannot map multiple external roles into Keycloak roles through custom OIDC Identity Provider 2015-11-08 20:10:14 +05:30
Bruno Oliveira 8db6972441 Input validation in OTP Policy page 2015-11-06 11:52:21 -02:00
Tomas Kyjovsky 027311c0c0 Adapter tests for Karaf: Fuse Example installation now done via JMX instead of maven-karaf plugin. Needed for testing on Fuse. 2015-11-06 13:03:42 +01:00
Thomas Raehalme 68edf9ce48 Errors are now reported using sendError instead of setStatus.
This change was made to enable the use of error pages defined in web.xml.
2015-11-06 10:53:18 +02:00
Thomas Raehalme 7b7fbd3257 Added sendError(int) to HttpFacade.Response. 2015-11-06 10:47:08 +02:00
Stian Thorgersen d0c50fe56d KEYCLOAK-2037 Fix domain mode for server-dist 2015-11-06 08:44:50 +01:00
girirajsharma 4075d65241 [KEYCLOAK-1993] It's possible to create new authentication flow with empty name within another flow 2015-11-05 21:59:04 +05:30
vramik 267be83863 arquillian-testsuite: add UI test for OTP Policy
Conflicts:
	testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/authentication/flows/CreateFlow.java
2015-11-05 13:37:59 +01:00
Stian Thorgersen 15828e899b Merge pull request #1790 from dvantooster/master
KEYCLOAK-2032 Changed some column names from lower- to uppercase
2015-11-05 13:03:20 +01:00
Stian Thorgersen ce089019e6 Merge pull request #1786 from mhajas/master
Add consent tests to integration-arquillian testsuite
2015-11-05 13:02:44 +01:00
Stian Thorgersen c9c49a9c64 Merge branch 'ramirost-feature/i18n_es' 2015-11-05 12:59:29 +01:00
Stian Thorgersen 623f39862d Merge branch 'feature/i18n_es' of https://github.com/ramirost/keycloak into ramirost-feature/i18n_es 2015-11-05 12:59:06 +01:00
Stian Thorgersen 818c3ab1c5 Merge pull request #1785 from ccheneau/master
Fix french translation for account and login resource bundles
2015-11-05 12:54:17 +01:00
Stian Thorgersen 1ce028ead7 Merge pull request #1789 from abstractj/pbeutils-removal
Removal of PBEUtils
2015-11-05 12:49:22 +01:00
Stian Thorgersen d844e6b4af Merge pull request #1776 from girirajsharma/keycloak-1995
[KEYCLOAK-1995] Replace provider select options with Labels displayed in flows table
2015-11-05 12:08:23 +01:00
vramik 7b4dcb6965 arquillian-testsuite: add UI test for Bindings flows 2015-11-04 18:14:41 +01:00
Daniël van 't Ooster 7bd0b7ddfc KEYCLOAK-2032 Changed some column names from lower- to uppercase, so it is in sync with liquibase scripts 2015-11-04 11:43:09 +01:00
Bruno Oliveira d2912673b0 Removal of PBEUtils 2015-11-04 02:06:21 -02:00
Stian Thorgersen 28ee95138a Merge pull request #1773 from iperdomo/master
KEYCLOAK-2016
2015-11-03 15:55:21 +01:00
Bill Burke d46b4eb5fe Merge pull request #1780 from agolPL/master
extract hardcoded keycloak configuration file name
2015-11-02 11:51:04 -05:00
Bill Burke 151c56a304 conflicts 2015-11-02 11:21:10 -05:00
Bill Burke c2ad918975 group model 2015-11-02 11:19:19 -05:00
Tomas Kyjovsky 634eadb634 Merge pull request #1787 from vramik/migration
arquillian-testsuite: Migration test
2015-11-02 15:36:18 +01:00
vramik d26cfcda42 arquillian testsuite, migration test: update execution of dependency plugin for migration scenario 2015-11-02 11:56:26 +01:00
vramik 4a9a39c08d arquillian testsuite, migration test: fix 2015-10-30 14:01:48 +01:00
vramik 9796b7f06e arquillian testsuite, migration test: initial version of migration test 2015-10-30 13:27:38 +01:00
vramik c2e14cb924 arquillian testsuite, migration test: fixed typo in arquillian.xml, add migration test for 1.5.1.Final 2015-10-30 11:32:01 +01:00
Bill Burke d896800ec6 groups initial 2015-10-29 16:33:02 -04:00
mhajas b74e0dad10 remove ConfigTest 2015-10-29 16:50:29 +01:00
mhajas 2c8b0fc3e1 Merge remote-tracking branch 'upstream/master' 2015-10-29 16:41:46 +01:00
vramik cd640339fc arquillian testsuite, migration test: fixed assembly.xml for 1.6.1.Final 2015-10-29 15:11:50 +01:00
vramik 52c02f03ae arquillian testsuite, migration test: fixed assembly.xml for 1.6.1.Final 2015-10-29 15:09:33 +01:00
vramik 84da341912 arquillian testsuite, migration test: add support for 1.5.1.Final 2015-10-29 14:48:05 +01:00
vramik 2c3958ce27 arquillian testsuite, migration test: update test realm to 1.6.1.Final 2015-10-29 14:43:23 +01:00
vramik 515f049ce6 arquillian testsuite, migration test: update version from 1.6.0.Final to 1.6.1.Final 2015-10-29 14:27:23 +01:00
vramik 03acad9b9d arquillian testsuite: increased startup timeout for containers 2015-10-29 13:41:38 +01:00
vramik 0392ebab32 arquillian testsuite: remove adding test realm in migration scenario 2015-10-29 12:22:33 +01:00
vramik 52804da497 arquillian testsuite: improve log messages for migration test 2015-10-29 11:36:29 +01:00
Cédric Chéneau 31df2046f0 Correction page login 2015-10-28 09:38:02 +01:00
Cédric Chéneau f14681f122 Correction page account 2015-10-28 09:35:17 +01:00
Cédric Chéneau d7d52b3295 Correction page account 2015-10-28 09:34:16 +01:00
ccheneau 8e71910e00 Fix french translation for account and login resource bundles 2015-10-27 20:14:41 +01:00
vramik e6620ca005 arquillian-testsuite added initial version of migration test 2015-10-27 14:31:15 +01:00
Ramiro Sánchez 490b8ce86f Added Spanish language support 2015-10-27 12:05:32 +01:00
vramik 480444ffc5 Merge upstream/master into migration 2015-10-27 11:50:30 +01:00
vramik 2fd7e5b355 arquillian-testsuite fixed whitespaces 2015-10-27 11:43:49 +01:00
vramik f45e0aa387 arquillian-testsuite migration servers: removed unused properties 2015-10-27 11:41:33 +01:00
vramik 6c77c295d5 arquillian-testsuite refactoring migration servers 2015-10-27 11:40:41 +01:00
vmuzikar ccfaf72b09 Init changes
(cherry picked from commit 31d8cab)
2015-10-26 15:47:05 +01:00
vmuzikar 700740a378 Added POs for client mappers
(cherry picked from commit f2cd982)
2015-10-26 15:45:55 +01:00
vmuzikar 8062f5f50e Added POs for client mappers
(cherry picked from commit f491c3c)
2015-10-26 15:43:00 +01:00
vmuzikar 5e0851c25f Rewritten some POs to use @id attributes
(cherry picked from commit 12b9c7e)
2015-10-26 14:17:07 +01:00
Marek Posolda 81650a89f9 Merge pull request #1782 from mposolda/master
KEYCLOAK-2005 Fixed migration to take less time. Added UserProvider.g…
2015-10-26 14:12:14 +01:00
vmuzikar 709449243c Added @id to some UI elements
(cherry picked from commit 4034258)
2015-10-26 14:02:30 +01:00
mhajas df24d8a01f Merge remote-tracking branch 'upstream/master' 2015-10-26 12:26:47 +01:00
mposolda f8f4de9389 KEYCLOAK-2005 Fixed migration to take less time. Added UserProvider.grantToAllUsers 2015-10-26 11:06:19 +01:00
agolPl 9755d79879 extract keycloak configuration file name 2015-10-25 00:26:18 +02:00
girirajsharma 70cbeaf336 [KEYCLOAK-1994] It's not possible to create flow with same name as deleted nested flow 2015-10-24 22:57:40 +05:30
girirajsharma b0a71fbeb0 Replace provider select options with Labels displayed in flows table 2015-10-24 13:28:43 +05:30
Marek Posolda 44f56e1d74 Merge pull request #1775 from mposolda/master
Migration and other fixes
2015-10-23 23:41:08 +02:00
mposolda 74924f2f8c KEYCLOAK-2011 2015-10-23 22:48:06 +02:00
mposolda c498b06f68 KEYCLOAK-2007 Migration upgrade for 1.6.1 2015-10-23 22:47:53 +02:00
Iván Perdomo 525bee66a4 KEYCLOAK-2016
Change label to Forgot password
2015-10-23 16:02:30 +02:00
Stian Thorgersen cd51a95764 Merge pull request #1771 from ramirost/release/locale
Added support to indicate desired locale on login options
2015-10-23 15:16:37 +02:00
Ramiro Sánchez 57c282eca8 Updated documentation with the new 'locale' parameter 2015-10-23 14:32:16 +02:00
Ramiro Sánchez ebd02a1a7f Changed query parameter from kc_locale to ui_locales as suggested by stianst 2015-10-23 14:21:59 +02:00
Stian Thorgersen cc4583bc0b Merge pull request #1772 from stianst/master
KEYCLOAK-2015
2015-10-23 13:41:27 +02:00
Stian Thorgersen 11ef67722b KEYCLOAK-2015
autofocus on input text field in login-totp.ftl
2015-10-23 13:40:57 +02:00
Stian Thorgersen 5316dd6d50 Merge pull request #1770 from gerbermichi/autofocus
autofocus on input text field in login-reset-password.ftl
2015-10-23 13:39:29 +02:00
Stian Thorgersen 3cee33847f Merge pull request #1769 from gerbermichi/client
expose client attributes in ClientBean
2015-10-23 13:38:25 +02:00
Stian Thorgersen a2b5b6dc71 Merge pull request #1768 from stianst/master
Fix saml examples not excluded from deploy
2015-10-23 13:37:48 +02:00
Ramiro Sánchez a5dc91f9a6 Added support to indicate desired locale on login 2015-10-23 12:23:24 +02:00
Michael Gerber 3b4b1b20d8 expose client attributes in ClientBean 2015-10-23 09:41:03 +02:00
Michael Gerber b32423d96b autofocus on input field 2015-10-23 09:38:40 +02:00
Stian Thorgersen 4f2fe0197d Fix saml examples not excluded from deploy 2015-10-23 08:48:43 +02:00
Stian Thorgersen aa25c899ee Merge pull request #1765 from vramik/migration-kc16
add support for migration tests - Keycloak 1.6.0.Final
2015-10-23 08:31:08 +02:00
Marek Posolda fa6b99eaab Merge pull request #1767 from mposolda/master
KEYCLOAK-1999 KC server doesn't start on EAP 6.4 in local mode on Pos…
2015-10-22 15:08:54 +02:00
mposolda e04dbffb88 KEYCLOAK-1999 KC server doesn't start on EAP 6.4 in local mode on PostgreSQL 2015-10-22 14:28:08 +02:00
vramik f823b17b90 add path for migration test realm 2015-10-22 14:04:50 +02:00
mhajas 7dfb7ddccd Merge remote-tracking branch 'upstream/master' 2015-10-21 15:41:34 +02:00
vramik 4b444d36b0 removed changes in admin-client 2015-10-21 10:35:19 +02:00
Stian Thorgersen 23546402fa Merge pull request #1749 from cfsnyder/master
KEYCLOAK-1863 added both issuer and account name to otp configuration
2015-10-21 09:24:58 +02:00
vramik edfc7ea103 add support for migration tests - KC1.6.0.Final 2015-10-20 17:00:57 +02:00
Stian Thorgersen 3a7c84c9e1 Merge pull request #1763 from mstruk/KEYCLOAK-1988
KEYCLOAK-1988 Loader constraint violation in multi-tenant example
2015-10-20 06:06:40 +02:00
Stian Thorgersen c860c671d1 Fix parent of docbook modules 2015-10-19 19:37:51 +02:00
Marek Posolda 072950e9f3 Merge pull request #1762 from mposolda/master
KEYCLOAK-1987 Minor fixes in fuse demo
2015-10-19 19:23:05 +02:00
mposolda 8226abef40 KEYCLOAK-1987 Minor fixes in fuse demo 2015-10-19 17:29:04 +02:00
Bill Burke 0d05d38eb6 Merge remote-tracking branch 'upstream/master' 2015-10-19 10:21:03 -04:00
Stian Thorgersen 4f4368b29f Merge pull request #1761 from stianst/master
Version bump
2015-10-19 16:16:27 +02:00
Stian Thorgersen 3f8312427a Version bump 2015-10-19 16:15:29 +02:00
Marek Posolda 73bb579dc5 Merge pull request #1758 from mposolda/master
KEYCLOAK-1981 Migration fix of create-client
2015-10-19 14:11:37 +02:00
Stian Thorgersen c75528f81e Merge pull request #1760 from stianst/master
KEYCLOAK-1985
2015-10-19 13:35:37 +02:00
Stian Thorgersen 28bfac7214 KEYCLOAK-1985 2015-10-19 13:35:04 +02:00
Stian Thorgersen 1c9a347391 Merge pull request #1759 from stianst/master
KEYCLOAK-1984
2015-10-19 13:25:17 +02:00
Stian Thorgersen df03f51563 KEYCLOAK-1984
Examples includes pom.xml.releaseBackup
2015-10-19 13:25:02 +02:00
mposolda 7d590761dd KEYCLOAK-1981 Migration fix of create-client 2015-10-19 12:46:47 +02:00
Marek Posolda 944c416b45 Merge pull request #1757 from mposolda/master
KEYCLOAK-1983 Fix Oracle and Sybase
2015-10-19 12:27:45 +02:00
mposolda 028cbe1ce2 KEYCLOAK-1983 Fix Oracle and Sybase 2015-10-19 11:45:49 +02:00
Bill Burke 186de7235c Merge remote-tracking branch 'upstream/master' 2015-10-16 11:03:42 -04:00
Bill Burke 9433ef284a set browser flow switch 2015-10-16 11:03:30 -04:00
mhajas 32647d8682 Add tests for access grant and revoking grant 2015-10-16 16:22:30 +02:00
Cory Snyder d8ebf1e3d6 KEYCLOAK-1863 added both issuer and account name to otp configuration 2015-10-16 09:46:56 -04:00
8039 changed files with 499200 additions and 216165 deletions

No files matched your search

+4
View File
@@ -14,6 +14,7 @@
nbactions.xml
nb-configuration.xml
catalog.xml
nbproject
# Compiled source #
###################
@@ -45,3 +46,6 @@ catalog.xml
#########
target
# Maven shade
#############
*dependency-reduced-pom.xml
+23 -8
View File
@@ -1,19 +1,34 @@
language: java
jdk:
- oraclejdk8
cache:
directories:
- $HOME/.m2
directories:
- $HOME/.m2
before_cache:
- rm -rf $HOME/.m2/repository/org/keycloak
install: mvn install -Pdistribution -DskipTests=true -B -V
env:
global:
- MAVEN_SKIP_RC=true
- MAVEN_OPTS="-Xms512m -Xmx2048m"
matrix:
- TESTS=group1
- TESTS=group2
- TESTS=group3
- TESTS=group4
- TESTS=adapter
- TESTS=old
jdk:
- oraclejdk8
before_script:
- export MAVEN_SKIP_RC=true
install:
- travis_wait 60 mvn install -Pdistribution -DskipTests=true -B -V -q
script:
- mvn test -B
- mvn -file testsuite/integration-arquillian test -B
- ./travis-run-tests.sh $TESTS
sudo: false
+19 -16
View File
@@ -1,13 +1,15 @@
Keycloak
========
Keycloak is an SSO Service for web apps and REST services. For more information visit [http://keycloak.org](http://keycloak.org).
Open Source Identity and Access Management for modern Applications and Services.
For more information about Keycloak visit [Keycloak homepage](http://keycloak.org) and [Keycloak blog](http://blog.keycloak.org).
Building
--------
Ensure you have JDK 7 (or newer), Maven 3.2.1 (or newer) and Git installed
Ensure you have JDK 8 (or newer), Maven 3.1.1 (or newer) and Git installed
java -version
mvn -version
@@ -34,7 +36,7 @@ Once completed you will find distribution archives in `distribution`.
Starting Keycloak
-----------------
To start Keycloak during development first build as specficied above, then run:
To start Keycloak during development first build as specified above, then run:
mvn -f testsuite/integration/pom.xml exec:java -Pkeycloak-server
@@ -48,25 +50,26 @@ To start Keycloak from the appliance distribution first build the distribution i
To stop the server press `Ctrl + C`.
Help and Documentation
----------------------
* [Documentation](http://www.keycloak.org/documentation.html) - User Guide, Admin REST API and Javadocs
* [User Mailing List](https://lists.jboss.org/mailman/listinfo/keycloak-user) - Mailing list to ask for help and general questions about Keycloak
* [JIRA](https://issues.jboss.org/projects/KEYCLOAK) - Issue tracker for bugs and feature requests
Contributing
------------
* See [Hacking on Keycloak](misc/HackingOnKeycloak.md)
Documentation
-------------
* [User Guide, Admin REST API and Javadocs](http://keycloak.jboss.org/docs)
* Developer documentation
* [Hacking on Keycloak](misc/HackingOnKeycloak.md) - how to become a Keycloak contributor
* [Testsuite](misc/Testsuite.md) - details about testsuite, but also how to quickly run Keycloak during development and a few test tools (OTP generation, LDAP server, Mail server)
* [Database Testing](misc/DatabaseTesting.md) - how to do testing of Keycloak on different databases
* [Updating Database](misc/UpdatingDatabaseSchema.md) - how to change the Keycloak database
* [Release Process](misc/ReleaseProcess.md) - how to release Keycloak
* [Hacking on Keycloak](misc/HackingOnKeycloak.md) - How to become a Keycloak contributor
* [Testsuite](misc/Testsuite.md) - Details about testsuite, but also how to quickly run Keycloak during development and a few test tools (OTP generation, LDAP server, Mail server)
* [Database Testing](misc/DatabaseTesting.md) - How to do testing of Keycloak on different databases
* [Updating Database](misc/UpdatingDatabaseSchema.md) - How to change the Keycloak database
* [Changing the Default keycloak-subsystem Configuration](misc/UpdatingServerConfig.md) - How to update the default keycloak-subsystem config
* [Developer Mailing List](https://lists.jboss.org/mailman/listinfo/keycloak-dev) - Mailing list to discuss development of Keycloak
License
-------
* [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
* [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
+145
View File
@@ -0,0 +1,145 @@
<?xml version="1.0"?>
<!--
~ Copyright 2016 Red Hat, Inc. and/or its affiliates
~ and other contributors as indicated by the @author tags.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>2.5.5.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>keycloak-adapter-core</artifactId>
<name>Keycloak Adapter Core</name>
<description/>
<properties>
<keycloak.osgi.export>
org.keycloak.adapters.*
</keycloak.osgi.export>
<keycloak.osgi.import>
org.keycloak.*;version="${project.version}",
org.apache.http.*;version=${apache.httpcomponents.version},
org.apache.karaf.jaas.boot.principal;resolution:=optional,
org.apache.karaf.jaas.modules;resolution:=optional,
*;resolution:=optional
</keycloak.osgi.import>
</properties>
<dependencies>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>${jboss.logging.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-authz-client</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<!-- Adding OSGI metadata to the JAR without changing the packaging type. -->
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
<configuration>
<instructions>
<Bundle-ClassPath>.</Bundle-ClassPath>
<Bundle-Name>${project.name}</Bundle-Name>
<Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
<Import-Package>${keycloak.osgi.import}</Import-Package>
<Export-Package>${keycloak.osgi.export}</Export-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project>
@@ -1,25 +1,37 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.jboss.logging.Logger;
import org.keycloak.adapters.authentication.ClientCredentialsProvider;
import org.keycloak.adapters.authorization.PolicyEnforcer;
import org.keycloak.adapters.rotation.PublicKeyLocator;
import org.keycloak.adapters.spi.HttpFacade;
import org.keycloak.common.enums.RelativeUrlsUsed;
import org.keycloak.common.enums.SslRequired;
import org.keycloak.common.util.KeycloakUriBuilder;
import org.keycloak.enums.TokenStore;
import org.keycloak.representations.adapters.config.AdapterConfig;
import org.keycloak.representations.idm.PublishedRealmRepresentation;
import org.keycloak.util.JsonSerialization;
import org.keycloak.common.util.KeycloakUriBuilder;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.security.PublicKey;
import java.util.Map;
/**
@@ -40,7 +52,7 @@ public class AdapterDeploymentContext {
* during the application deployment's life cycle.
*
* @param deployment A KeycloakConfigResolver, possibly missing the Auth
* Server URL and/or Realm Public Key
* Server URL
*/
public AdapterDeploymentContext(KeycloakDeployment deployment) {
this.deployment = deployment;
@@ -62,7 +74,6 @@ public class AdapterDeploymentContext {
/**
* For single-tenant deployments, it complements KeycloakDeployment
* by resolving a relative Auth Server's URL based on the current request
* and, if needed, will lazily resolve the Realm's Public Key.
*
* For multi-tenant deployments, defers the resolution of KeycloakDeployment
* to the KeycloakConfigResolver .
@@ -81,8 +92,8 @@ public class AdapterDeploymentContext {
if (deployment.getAuthServerBaseUrl() == null) return deployment;
KeycloakDeployment resolvedDeployment = resolveUrls(deployment, facade);
if (resolvedDeployment.getRealmKey() == null) {
resolveRealmKey(resolvedDeployment);
if (resolvedDeployment.getPublicKeyLocator() == null) {
throw new RuntimeException("KeycloakDeployment was never initialized through appropriate SPIs");
}
return resolvedDeployment;
}
@@ -98,45 +109,6 @@ public class AdapterDeploymentContext {
}
}
public void resolveRealmKey(KeycloakDeployment deployment) {
if (deployment.getClient() == null) {
throw new RuntimeException("KeycloakDeployment was never initialized through appropriate SPIs");
}
HttpGet get = new HttpGet(deployment.getRealmInfoUrl());
try {
HttpResponse response = deployment.getClient().execute(get);
int status = response.getStatusLine().getStatusCode();
if (status != 200) {
close(response);
throw new RuntimeException("Unable to resolve realm public key remotely, status = " + status);
}
HttpEntity entity = response.getEntity();
if (entity == null) {
throw new RuntimeException("Unable to resolve realm public key remotely. There was no entity.");
}
InputStream is = entity.getContent();
try {
ByteArrayOutputStream os = new ByteArrayOutputStream();
int c;
while ((c = is.read()) != -1) {
os.write(c);
}
byte[] bytes = os.toByteArray();
String json = new String(bytes);
PublishedRealmRepresentation rep = JsonSerialization.readValue(json, PublishedRealmRepresentation.class);
deployment.setRealmKey(rep.getPublicKey());
} finally {
try {
is.close();
} catch (IOException ignored) {
}
}
} catch (IOException e) {
throw new RuntimeException("Unable to resolve realm public key remotely", e);
}
}
/**
* This delegate is used to store temporary, per-request metadata like request resolved URLs.
* Ever method is delegated except URL get methods and isConfigured()
@@ -152,11 +124,7 @@ public class AdapterDeploymentContext {
public void setAuthServerBaseUrl(String authServerBaseUrl) {
this.authServerBaseUrl = authServerBaseUrl;
KeycloakUriBuilder serverBuilder = KeycloakUriBuilder.fromUri(authServerBaseUrl);
resolveBrowserUrls(serverBuilder);
if (delegate.getRelativeUrls() == RelativeUrlsUsed.ALL_REQUESTS) {
resolveNonBrowserUrls(serverBuilder);
}
resolveUrls(serverBuilder);
}
@Override
@@ -194,6 +162,11 @@ public class AdapterDeploymentContext {
return (this.unregisterNodeUrl != null) ? this.unregisterNodeUrl : delegate.getUnregisterNodeUrl();
}
@Override
public String getJwksUrl() {
return (this.jwksUrl != null) ? this.jwksUrl : delegate.getJwksUrl();
}
@Override
public String getResourceName() {
return delegate.getResourceName();
@@ -210,13 +183,13 @@ public class AdapterDeploymentContext {
}
@Override
public PublicKey getRealmKey() {
return delegate.getRealmKey();
public void setPublicKeyLocator(PublicKeyLocator publicKeyLocator) {
delegate.setPublicKeyLocator(publicKeyLocator);
}
@Override
public void setRealmKey(PublicKey realmKey) {
delegate.setRealmKey(realmKey);
public PublicKeyLocator getPublicKeyLocator() {
return delegate.getPublicKeyLocator();
}
@Override
@@ -369,6 +342,12 @@ public class AdapterDeploymentContext {
return delegate.getNotBefore();
}
@Override
public void updateNotBefore(int notBefore) {
delegate.setNotBefore(notBefore);
getPublicKeyLocator().reset(this);
}
@Override
public void setExposeToken(boolean exposeToken) {
delegate.setExposeToken(exposeToken);
@@ -433,6 +412,56 @@ public class AdapterDeploymentContext {
public void setPrincipalAttribute(String principalAttribute) {
delegate.setPrincipalAttribute(principalAttribute);
}
@Override
public boolean isTurnOffChangeSessionIdOnLogin() {
return delegate.isTurnOffChangeSessionIdOnLogin();
}
@Override
public void setTurnOffChangeSessionIdOnLogin(boolean turnOffChangeSessionIdOnLogin) {
delegate.setTurnOffChangeSessionIdOnLogin(turnOffChangeSessionIdOnLogin);
}
@Override
public int getTokenMinimumTimeToLive() {
return delegate.getTokenMinimumTimeToLive();
}
@Override
public void setTokenMinimumTimeToLive(final int tokenMinimumTimeToLive) {
delegate.setTokenMinimumTimeToLive(tokenMinimumTimeToLive);
}
@Override
public PolicyEnforcer getPolicyEnforcer() {
return delegate.getPolicyEnforcer();
}
@Override
public void setPolicyEnforcer(PolicyEnforcer policyEnforcer) {
delegate.setPolicyEnforcer(policyEnforcer);
}
@Override
public void setMinTimeBetweenJwksRequests(int minTimeBetweenJwksRequests) {
delegate.setMinTimeBetweenJwksRequests(minTimeBetweenJwksRequests);
}
@Override
public int getMinTimeBetweenJwksRequests() {
return delegate.getMinTimeBetweenJwksRequests();
}
@Override
public int getPublicKeyCacheTtl() {
return delegate.getPublicKeyCacheTtl();
}
@Override
public void setPublicKeyCacheTtl(int publicKeyCacheTtl) {
delegate.setPublicKeyCacheTtl(publicKeyCacheTtl);
}
}
protected KeycloakUriBuilder getBaseBuilder(HttpFacade facade, String base) {
@@ -0,0 +1,61 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.keycloak.adapters.spi.AdapterSessionStore;
/**
* Abstraction for storing token info on adapter side. Intended to be per-request object
*
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public interface AdapterTokenStore extends AdapterSessionStore {
/**
* Impl can validate if current token exists and perform refreshing if it exists and is expired
*/
void checkCurrentToken();
/**
* Check if we are logged already (we have already valid and successfully refreshed accessToken). Establish security context if yes
*
* @param authenticator used for actual request authentication
* @return true if we are logged-in already
*/
boolean isCached(RequestAuthenticator authenticator);
/**
* Finish successful OAuth2 login and store validated account
*
* @param account
*/
void saveAccountInfo(OidcKeycloakAccount account);
/**
* Handle logout on store side and possibly propagate logout call to Keycloak
*/
void logout();
/**
* Callback invoked after successful token refresh
*
* @param securityContext context where refresh was performed
*/
void refreshCallback(RefreshableKeycloakSecurityContext securityContext);
}
@@ -0,0 +1,92 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.jboss.logging.Logger;
import org.keycloak.KeycloakPrincipal;
import org.keycloak.representations.AccessToken;
import java.util.Collections;
import java.util.Set;
import java.util.UUID;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class AdapterUtils {
private static Logger log = Logger.getLogger(AdapterUtils.class);
public static String generateId() {
return UUID.randomUUID().toString();
}
public static Set<String> getRolesFromSecurityContext(RefreshableKeycloakSecurityContext session) {
Set<String> roles = null;
AccessToken accessToken = session.getToken();
if (session.getDeployment().isUseResourceRoleMappings()) {
if (log.isTraceEnabled()) {
log.trace("useResourceRoleMappings");
}
AccessToken.Access access = accessToken.getResourceAccess(session.getDeployment().getResourceName());
if (access != null) roles = access.getRoles();
} else {
if (log.isTraceEnabled()) {
log.trace("use realm role mappings");
}
AccessToken.Access access = accessToken.getRealmAccess();
if (access != null) roles = access.getRoles();
}
if (roles == null) roles = Collections.emptySet();
if (log.isTraceEnabled()) {
log.trace("Setting roles: ");
for (String role : roles) {
log.trace(" role: " + role);
}
}
return roles;
}
public static String getPrincipalName(KeycloakDeployment deployment, AccessToken token) {
String attr = "sub";
if (deployment.getPrincipalAttribute() != null) attr = deployment.getPrincipalAttribute();
String name = null;
if ("sub".equals(attr)) {
name = token.getSubject();
} else if ("email".equals(attr)) {
name = token.getEmail();
} else if ("preferred_username".equals(attr)) {
name = token.getPreferredUsername();
} else if ("name".equals(attr)) {
name = token.getName();
} else if ("given_name".equals(attr)) {
name = token.getGivenName();
} else if ("family_name".equals(attr)) {
name = token.getFamilyName();
} else if ("nickname".equals(attr)) {
name = token.getNickName();
}
if (name == null) name = token.getSubject();
return name;
}
public static KeycloakPrincipal<RefreshableKeycloakSecurityContext> createPrincipal(KeycloakDeployment deployment, RefreshableKeycloakSecurityContext securityContext) {
return new KeycloakPrincipal<RefreshableKeycloakSecurityContext>(getPrincipalName(deployment, securityContext.getToken()), securityContext);
}
}
@@ -0,0 +1,156 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.jboss.logging.Logger;
import org.keycloak.AuthorizationContext;
import org.keycloak.KeycloakSecurityContext;
import org.keycloak.adapters.authorization.PolicyEnforcer;
import org.keycloak.common.util.UriUtils;
import org.keycloak.constants.AdapterConstants;
import org.keycloak.representations.AccessToken;
import java.io.IOException;
import java.util.Set;
/**
* Pre-installed actions that must be authenticated
*
* Actions include:
*
* CORS Origin Check and Response headers
* k_query_bearer_token: Get bearer token from server for Javascripts CORS requests
*
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public class AuthenticatedActionsHandler {
private static final Logger log = Logger.getLogger(AuthenticatedActionsHandler.class);
protected KeycloakDeployment deployment;
protected OIDCHttpFacade facade;
public AuthenticatedActionsHandler(KeycloakDeployment deployment, OIDCHttpFacade facade) {
this.deployment = deployment;
this.facade = facade;
}
public boolean handledRequest() {
log.debugv("AuthenticatedActionsValve.invoke {0}", facade.getRequest().getURI());
if (corsRequest()) return true;
String requestUri = facade.getRequest().getURI();
if (requestUri.endsWith(AdapterConstants.K_QUERY_BEARER_TOKEN)) {
queryBearerToken();
return true;
}
if (!isAuthorized()) {
return true;
}
return false;
}
protected void queryBearerToken() {
log.debugv("queryBearerToken {0}",facade.getRequest().getURI());
if (abortTokenResponse()) return;
facade.getResponse().setStatus(200);
facade.getResponse().setHeader("Content-Type", "text/plain");
try {
facade.getResponse().getOutputStream().write(facade.getSecurityContext().getTokenString().getBytes());
} catch (IOException e) {
throw new RuntimeException(e);
}
facade.getResponse().end();
}
protected boolean abortTokenResponse() {
if (facade.getSecurityContext() == null) {
log.debugv("Not logged in, sending back 401: {0}",facade.getRequest().getURI());
facade.getResponse().sendError(401);
facade.getResponse().end();
return true;
}
if (!deployment.isExposeToken()) {
facade.getResponse().setStatus(200);
facade.getResponse().end();
return true;
}
// Don't allow a CORS request if we're not validating CORS requests.
if (!deployment.isCors() && facade.getRequest().getHeader(CorsHeaders.ORIGIN) != null) {
facade.getResponse().setStatus(200);
facade.getResponse().end();
return true;
}
return false;
}
protected boolean corsRequest() {
if (!deployment.isCors()) return false;
KeycloakSecurityContext securityContext = facade.getSecurityContext();
String origin = facade.getRequest().getHeader(CorsHeaders.ORIGIN);
String requestOrigin = UriUtils.getOrigin(facade.getRequest().getURI());
log.debugv("Origin: {0} uri: {1}", origin, facade.getRequest().getURI());
if (securityContext != null && origin != null && !origin.equals(requestOrigin)) {
AccessToken token = securityContext.getToken();
Set<String> allowedOrigins = token.getAllowedOrigins();
if (log.isDebugEnabled()) {
for (String a : allowedOrigins) log.debug(" " + a);
}
if (allowedOrigins == null || (!allowedOrigins.contains("*") && !allowedOrigins.contains(origin))) {
if (allowedOrigins == null) {
log.debugv("allowedOrigins was null in token");
} else {
log.debugv("allowedOrigins did not contain origin");
}
facade.getResponse().sendError(403);
facade.getResponse().end();
return true;
}
log.debugv("returning origin: {0}", origin);
facade.getResponse().setStatus(200);
facade.getResponse().setHeader(CorsHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, origin);
facade.getResponse().setHeader(CorsHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true");
} else {
log.debugv("cors validation not needed as we're not a secure session or origin header was null: {0}", facade.getRequest().getURI());
}
return false;
}
private boolean isAuthorized() {
PolicyEnforcer policyEnforcer = this.deployment.getPolicyEnforcer();
if (policyEnforcer == null) {
log.debugv("Policy enforcement is disabled.");
return true;
}
try {
OIDCHttpFacade facade = (OIDCHttpFacade) this.facade;
AuthorizationContext authorizationContext = policyEnforcer.enforce(facade);
RefreshableKeycloakSecurityContext session = (RefreshableKeycloakSecurityContext) facade.getSecurityContext();
if (session != null) {
session.setAuthorizationContext(authorizationContext);
return authorizationContext.isGranted();
}
return true;
} catch (Exception e) {
throw new RuntimeException("Failed to enforce policy decisions.", e);
}
}
}
@@ -0,0 +1,126 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.jboss.logging.Logger;
import org.keycloak.OAuth2Constants;
import org.keycloak.adapters.authentication.ClientCredentialsProviderUtils;
import org.keycloak.adapters.spi.AuthOutcome;
import org.keycloak.adapters.spi.HttpFacade;
import org.keycloak.common.util.Base64;
import org.keycloak.common.util.KeycloakUriBuilder;
import org.keycloak.constants.ServiceUrlConstants;
import org.keycloak.representations.AccessTokenResponse;
import org.keycloak.util.JsonSerialization;
import java.util.List;
/**
* Basic auth request authenticator.
*/
public class BasicAuthRequestAuthenticator extends BearerTokenRequestAuthenticator {
protected Logger log = Logger.getLogger(BasicAuthRequestAuthenticator.class);
public BasicAuthRequestAuthenticator(KeycloakDeployment deployment) {
super(deployment);
}
public AuthOutcome authenticate(HttpFacade exchange) {
List<String> authHeaders = exchange.getRequest().getHeaders("Authorization");
if (authHeaders == null || authHeaders.size() == 0) {
challenge = challengeResponse(exchange, OIDCAuthenticationError.Reason.NO_AUTHORIZATION_HEADER, null, null);
return AuthOutcome.NOT_ATTEMPTED;
}
tokenString = null;
for (String authHeader : authHeaders) {
String[] split = authHeader.trim().split("\\s+");
if (split == null || split.length != 2) continue;
if (!split[0].equalsIgnoreCase("Basic")) continue;
tokenString = split[1];
}
if (tokenString == null) {
challenge = challengeResponse(exchange, OIDCAuthenticationError.Reason.INVALID_TOKEN, null, null);
return AuthOutcome.NOT_ATTEMPTED;
}
AccessTokenResponse atr=null;
try {
String userpw=new String(Base64.decode(tokenString));
String[] parts=userpw.split(":");
atr = getToken(parts[0], parts[1]);
tokenString = atr.getToken();
} catch (Exception e) {
log.debug("Failed to obtain token", e);
challenge = challengeResponse(exchange, OIDCAuthenticationError.Reason.INVALID_TOKEN, "no_token", e.getMessage());
return AuthOutcome.FAILED;
}
return authenticateToken(exchange, atr.getToken());
}
private AccessTokenResponse getToken(String username, String password) throws Exception {
AccessTokenResponse tokenResponse=null;
HttpClient client = deployment.getClient();
HttpPost post = new HttpPost(
KeycloakUriBuilder.fromUri(deployment.getAuthServerBaseUrl())
.path(ServiceUrlConstants.TOKEN_PATH).build(deployment.getRealm()));
java.util.List <NameValuePair> formparams = new java.util.ArrayList <NameValuePair>();
formparams.add(new BasicNameValuePair(OAuth2Constants.GRANT_TYPE, OAuth2Constants.PASSWORD));
formparams.add(new BasicNameValuePair("username", username));
formparams.add(new BasicNameValuePair("password", password));
ClientCredentialsProviderUtils.setClientCredentials(deployment, post, formparams);
UrlEncodedFormEntity form = new UrlEncodedFormEntity(formparams, "UTF-8");
post.setEntity(form);
HttpResponse response = client.execute(post);
int status = response.getStatusLine().getStatusCode();
HttpEntity entity = response.getEntity();
if (status != 200) {
EntityUtils.consumeQuietly(entity);
throw new java.io.IOException("Bad status: " + status);
}
if (entity == null) {
throw new java.io.IOException("No Entity");
}
java.io.InputStream is = entity.getContent();
try {
tokenResponse = JsonSerialization.readValue(is, AccessTokenResponse.class);
} finally {
try {
is.close();
} catch (java.io.IOException ignored) { }
}
return (tokenResponse);
}
}
@@ -1,7 +1,24 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.jboss.logging.Logger;
import org.keycloak.RSATokenVerifier;
import org.keycloak.adapters.rotation.AdapterRSATokenVerifier;
import org.keycloak.adapters.spi.AuthChallenge;
import org.keycloak.adapters.spi.AuthOutcome;
import org.keycloak.adapters.spi.HttpFacade;
@@ -45,7 +62,7 @@ public class BearerTokenRequestAuthenticator {
public AuthOutcome authenticate(HttpFacade exchange) {
List<String> authHeaders = exchange.getRequest().getHeaders("Authorization");
if (authHeaders == null || authHeaders.size() == 0) {
challenge = challengeResponse(exchange, null, null);
challenge = challengeResponse(exchange, OIDCAuthenticationError.Reason.NO_BEARER_TOKEN, null, null);
return AuthOutcome.NOT_ATTEMPTED;
}
@@ -58,7 +75,7 @@ public class BearerTokenRequestAuthenticator {
}
if (tokenString == null) {
challenge = challengeResponse(exchange, null, null);
challenge = challengeResponse(exchange, OIDCAuthenticationError.Reason.NO_BEARER_TOKEN, null, null);
return AuthOutcome.NOT_ATTEMPTED;
}
@@ -67,15 +84,15 @@ public class BearerTokenRequestAuthenticator {
protected AuthOutcome authenticateToken(HttpFacade exchange, String tokenString) {
try {
token = RSATokenVerifier.verifyToken(tokenString, deployment.getRealmKey(), deployment.getRealmInfoUrl());
token = AdapterRSATokenVerifier.verifyToken(tokenString, deployment);
} catch (VerificationException e) {
log.error("Failed to verify token", e);
challenge = challengeResponse(exchange, "invalid_token", e.getMessage());
challenge = challengeResponse(exchange, OIDCAuthenticationError.Reason.INVALID_TOKEN, "invalid_token", e.getMessage());
return AuthOutcome.FAILED;
}
if (token.getIssuedAt() < deployment.getNotBefore()) {
log.error("Stale token");
challenge = challengeResponse(exchange, "invalid_token", "Stale token");
challenge = challengeResponse(exchange, OIDCAuthenticationError.Reason.STALE_TOKEN, "invalid_token", "Stale token");
return AuthOutcome.FAILED;
}
boolean verifyCaller = false;
@@ -112,11 +129,6 @@ public class BearerTokenRequestAuthenticator {
protected AuthChallenge clientCertChallenge() {
return new AuthChallenge() {
@Override
public boolean errorPage() {
return false;
}
@Override
public int getResponseCode() {
return 0;
@@ -131,7 +143,7 @@ public class BearerTokenRequestAuthenticator {
}
protected AuthChallenge challengeResponse(HttpFacade facade, String error, String description) {
protected AuthChallenge challengeResponse(HttpFacade facade, final OIDCAuthenticationError.Reason reason, final String error, final String description) {
StringBuilder header = new StringBuilder("Bearer realm=\"");
header.append(deployment.getRealm()).append("\"");
if (error != null) {
@@ -142,11 +154,6 @@ public class BearerTokenRequestAuthenticator {
}
final String challenge = header.toString();
return new AuthChallenge() {
@Override
public boolean errorPage() {
return true;
}
@Override
public int getResponseCode() {
return 401;
@@ -154,8 +161,10 @@ public class BearerTokenRequestAuthenticator {
@Override
public boolean challenge(HttpFacade facade) {
facade.getResponse().setStatus(401);
OIDCAuthenticationError error = new OIDCAuthenticationError(reason, description);
facade.getRequest().setError(error);
facade.getResponse().addHeader("WWW-Authenticate", challenge);
facade.getResponse().sendError(401);
return true;
}
};
@@ -1,17 +1,33 @@
package org.keycloak.adapters;
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.io.IOException;
package org.keycloak.adapters;
import org.jboss.logging.Logger;
import org.keycloak.KeycloakPrincipal;
import org.keycloak.RSATokenVerifier;
import org.keycloak.adapters.rotation.AdapterRSATokenVerifier;
import org.keycloak.adapters.spi.HttpFacade;
import org.keycloak.common.VerificationException;
import org.keycloak.common.util.KeycloakUriBuilder;
import org.keycloak.constants.AdapterConstants;
import org.keycloak.jose.jws.JWSInput;
import org.keycloak.jose.jws.JWSInputException;
import org.keycloak.representations.AccessToken;
import org.keycloak.representations.IDToken;
import org.keycloak.common.util.KeycloakUriBuilder;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
@@ -55,13 +71,13 @@ public class CookieTokenStore {
try {
// Skip check if token is active now. It's supposed to be done later by the caller
AccessToken accessToken = RSATokenVerifier.verifyToken(accessTokenString, deployment.getRealmKey(), deployment.getRealmInfoUrl(), false, true);
AccessToken accessToken = AdapterRSATokenVerifier.verifyToken(accessTokenString, deployment, false, true);
IDToken idToken;
if (idTokenString != null && idTokenString.length() > 0) {
JWSInput input = new JWSInput(idTokenString);
try {
JWSInput input = new JWSInput(idTokenString);
idToken = input.readJsonContent(IDToken.class);
} catch (IOException e) {
} catch (JWSInputException e) {
throw new VerificationException(e);
}
} else {
@@ -0,0 +1,33 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public interface CorsHeaders {
String ACCESS_CONTROL_ALLOW_ORIGIN = "Access-Control-Allow-Origin";
String ACCESS_CONTROL_ALLOW_CREDENTIALS = "Access-Control-Allow-Credentials";
String ACCESS_CONTROL_ALLOW_METHODS = "Access-Control-Allow-Methods";
String ACCESS_CONTROL_ALLOW_HEADERS = "Access-Control-Allow-Headers";
String ACCESS_CONTROL_MAX_AGE = "Access-Control-Max-Age";
String ORIGIN = "Origin";
String ACCESS_CONTROL_REQUEST_METHOD = "Access-Control-Request-Method";
String ACCESS_CONTROL_REQUEST_HEADERS = "Access-Control-Request-Headers";
}
@@ -0,0 +1,72 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpRequestBase;
import org.keycloak.util.JsonSerialization;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class HttpAdapterUtils {
public static <T> T sendJsonHttpRequest(KeycloakDeployment deployment, HttpRequestBase httpRequest, Class<T> clazz) throws HttpClientAdapterException {
try {
HttpResponse response = deployment.getClient().execute(httpRequest);
int status = response.getStatusLine().getStatusCode();
if (status != 200) {
close(response);
throw new HttpClientAdapterException("Unexpected status = " + status);
}
HttpEntity entity = response.getEntity();
if (entity == null) {
throw new HttpClientAdapterException("There was no entity.");
}
InputStream is = entity.getContent();
try {
return JsonSerialization.readValue(is, clazz);
} finally {
try {
is.close();
} catch (IOException ignored) {
}
}
} catch (IOException e) {
throw new HttpClientAdapterException("IO error", e);
}
}
private static void close(HttpResponse response) {
if (response.getEntity() != null) {
try {
response.getEntity().getContent().close();
} catch (IOException e) {
}
}
}
}
@@ -0,0 +1,32 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class HttpClientAdapterException extends Exception {
public HttpClientAdapterException(String message) {
super(message);
}
public HttpClientAdapterException(String message, Throwable t) {
super(message, t);
}
}
@@ -0,0 +1,397 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.apache.http.HttpHost;
import org.apache.http.client.CookieStore;
import org.apache.http.client.HttpClient;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.AllowAllHostnameVerifier;
import org.apache.http.conn.ssl.BrowserCompatHostnameVerifier;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.conn.ssl.StrictHostnameVerifier;
import org.apache.http.conn.ssl.X509HostnameVerifier;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.SingleClientConnManager;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.keycloak.common.util.EnvUtil;
import org.keycloak.common.util.KeystoreUtil;
import org.keycloak.representations.adapters.config.AdapterHttpClientConfig;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLException;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.io.IOException;
import java.net.URI;
import java.security.KeyStore;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* Abstraction for creating HttpClients. Allows SSL configuration.
*
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public class HttpClientBuilder {
public static enum HostnameVerificationPolicy {
/**
* Hostname verification is not done on the server's certificate
*/
ANY,
/**
* Allows wildcards in subdomain names i.e. *.foo.com
*/
WILDCARD,
/**
* CN must match hostname connecting to
*/
STRICT
}
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
private static class PassthroughTrustManager implements X509TrustManager {
public void checkClientTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
}
protected KeyStore truststore;
protected KeyStore clientKeyStore;
protected String clientPrivateKeyPassword;
protected boolean disableTrustManager;
protected boolean disableCookieCache = true;
protected HostnameVerificationPolicy policy = HostnameVerificationPolicy.WILDCARD;
protected SSLContext sslContext;
protected int connectionPoolSize = 100;
protected int maxPooledPerRoute = 0;
protected long connectionTTL = -1;
protected TimeUnit connectionTTLUnit = TimeUnit.MILLISECONDS;
protected HostnameVerifier verifier = null;
protected long socketTimeout = -1;
protected TimeUnit socketTimeoutUnits = TimeUnit.MILLISECONDS;
protected long establishConnectionTimeout = -1;
protected TimeUnit establishConnectionTimeoutUnits = TimeUnit.MILLISECONDS;
protected HttpHost proxyHost;
/**
* Socket inactivity timeout
*
* @param timeout
* @param unit
* @return
*/
public HttpClientBuilder socketTimeout(long timeout, TimeUnit unit) {
this.socketTimeout = timeout;
this.socketTimeoutUnits = unit;
return this;
}
/**
* When trying to make an initial socket connection, what is the timeout?
*
* @param timeout
* @param unit
* @return
*/
public HttpClientBuilder establishConnectionTimeout(long timeout, TimeUnit unit) {
this.establishConnectionTimeout = timeout;
this.establishConnectionTimeoutUnits = unit;
return this;
}
public HttpClientBuilder connectionTTL(long ttl, TimeUnit unit) {
this.connectionTTL = ttl;
this.connectionTTLUnit = unit;
return this;
}
public HttpClientBuilder maxPooledPerRoute(int maxPooledPerRoute) {
this.maxPooledPerRoute = maxPooledPerRoute;
return this;
}
public HttpClientBuilder connectionPoolSize(int connectionPoolSize) {
this.connectionPoolSize = connectionPoolSize;
return this;
}
/**
* Disable trust management and hostname verification. <i>NOTE</i> this is a security
* hole, so only set this option if you cannot or do not want to verify the identity of the
* host you are communicating with.
*/
public HttpClientBuilder disableTrustManager() {
this.disableTrustManager = true;
return this;
}
public HttpClientBuilder disableCookieCache() {
this.disableCookieCache = true;
return this;
}
/**
* SSL policy used to verify hostnames
*
* @param policy
* @return
*/
public HttpClientBuilder hostnameVerification(HostnameVerificationPolicy policy) {
this.policy = policy;
return this;
}
public HttpClientBuilder sslContext(SSLContext sslContext) {
this.sslContext = sslContext;
return this;
}
public HttpClientBuilder trustStore(KeyStore truststore) {
this.truststore = truststore;
return this;
}
public HttpClientBuilder keyStore(KeyStore keyStore, String password) {
this.clientKeyStore = keyStore;
this.clientPrivateKeyPassword = password;
return this;
}
public HttpClientBuilder keyStore(KeyStore keyStore, char[] password) {
this.clientKeyStore = keyStore;
this.clientPrivateKeyPassword = new String(password);
return this;
}
static class VerifierWrapper implements X509HostnameVerifier {
protected HostnameVerifier verifier;
VerifierWrapper(HostnameVerifier verifier) {
this.verifier = verifier;
}
@Override
public void verify(String host, SSLSocket ssl) throws IOException {
if (!verifier.verify(host, ssl.getSession())) throw new SSLException("Hostname verification failure");
}
@Override
public void verify(String host, X509Certificate cert) throws SSLException {
throw new SSLException("This verification path not implemented");
}
@Override
public void verify(String host, String[] cns, String[] subjectAlts) throws SSLException {
throw new SSLException("This verification path not implemented");
}
@Override
public boolean verify(String s, SSLSession sslSession) {
return verifier.verify(s, sslSession);
}
}
public HttpClient build() {
X509HostnameVerifier verifier = null;
if (this.verifier != null) verifier = new VerifierWrapper(this.verifier);
else {
switch (policy) {
case ANY:
verifier = new AllowAllHostnameVerifier();
break;
case WILDCARD:
verifier = new BrowserCompatHostnameVerifier();
break;
case STRICT:
verifier = new StrictHostnameVerifier();
break;
}
}
try {
SSLSocketFactory sslsf = null;
SSLContext theContext = sslContext;
if (disableTrustManager) {
theContext = SSLContext.getInstance("SSL");
theContext.init(null, new TrustManager[]{new PassthroughTrustManager()},
new SecureRandom());
verifier = new AllowAllHostnameVerifier();
sslsf = new SniSSLSocketFactory(theContext, verifier);
} else if (theContext != null) {
sslsf = new SniSSLSocketFactory(theContext, verifier);
} else if (clientKeyStore != null || truststore != null) {
sslsf = new SniSSLSocketFactory(SSLSocketFactory.TLS, clientKeyStore, clientPrivateKeyPassword, truststore, null, verifier);
} else {
final SSLContext tlsContext = SSLContext.getInstance(SSLSocketFactory.TLS);
tlsContext.init(null, null, null);
sslsf = new SniSSLSocketFactory(tlsContext, verifier);
}
SchemeRegistry registry = new SchemeRegistry();
registry.register(
new Scheme("http", 80, PlainSocketFactory.getSocketFactory()));
Scheme httpsScheme = new Scheme("https", 443, sslsf);
registry.register(httpsScheme);
ClientConnectionManager cm = null;
if (connectionPoolSize > 0) {
ThreadSafeClientConnManager tcm = new ThreadSafeClientConnManager(registry, connectionTTL, connectionTTLUnit);
tcm.setMaxTotal(connectionPoolSize);
if (maxPooledPerRoute == 0) maxPooledPerRoute = connectionPoolSize;
tcm.setDefaultMaxPerRoute(maxPooledPerRoute);
cm = tcm;
} else {
cm = new SingleClientConnManager(registry);
}
BasicHttpParams params = new BasicHttpParams();
if (proxyHost != null) {
params.setParameter(ConnRoutePNames.DEFAULT_PROXY, proxyHost);
}
if (socketTimeout > -1) {
HttpConnectionParams.setSoTimeout(params, (int) socketTimeoutUnits.toMillis(socketTimeout));
}
if (establishConnectionTimeout > -1) {
HttpConnectionParams.setConnectionTimeout(params, (int) establishConnectionTimeoutUnits.toMillis(establishConnectionTimeout));
}
DefaultHttpClient client = new DefaultHttpClient(cm, params);
if (disableCookieCache) {
client.setCookieStore(new CookieStore() {
@Override
public void addCookie(Cookie cookie) {
//To change body of implemented methods use File | Settings | File Templates.
}
@Override
public List<Cookie> getCookies() {
return Collections.emptyList();
}
@Override
public boolean clearExpired(Date date) {
return false; //To change body of implemented methods use File | Settings | File Templates.
}
@Override
public void clear() {
//To change body of implemented methods use File | Settings | File Templates.
}
});
}
return client;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public HttpClient build(AdapterHttpClientConfig adapterConfig) {
disableCookieCache(); // disable cookie cache as we don't want sticky sessions for load balancing
String truststorePath = adapterConfig.getTruststore();
if (truststorePath != null) {
truststorePath = EnvUtil.replace(truststorePath);
String truststorePassword = adapterConfig.getTruststorePassword();
try {
this.truststore = KeystoreUtil.loadKeyStore(truststorePath, truststorePassword);
} catch (Exception e) {
throw new RuntimeException("Failed to load truststore", e);
}
}
String clientKeystore = adapterConfig.getClientKeystore();
if (clientKeystore != null) {
clientKeystore = EnvUtil.replace(clientKeystore);
String clientKeystorePassword = adapterConfig.getClientKeystorePassword();
try {
KeyStore clientCertKeystore = KeystoreUtil.loadKeyStore(clientKeystore, clientKeystorePassword);
keyStore(clientCertKeystore, clientKeystorePassword);
} catch (Exception e) {
throw new RuntimeException("Failed to load keystore", e);
}
}
int size = 10;
if (adapterConfig.getConnectionPoolSize() > 0)
size = adapterConfig.getConnectionPoolSize();
HttpClientBuilder.HostnameVerificationPolicy policy = HttpClientBuilder.HostnameVerificationPolicy.WILDCARD;
if (adapterConfig.isAllowAnyHostname())
policy = HttpClientBuilder.HostnameVerificationPolicy.ANY;
connectionPoolSize(size);
hostnameVerification(policy);
if (adapterConfig.isDisableTrustManager()) {
disableTrustManager();
} else {
trustStore(truststore);
}
configureProxyForAuthServerIfProvided(adapterConfig);
return build();
}
/**
* Configures a the proxy to use for auth-server requests if provided.
* <p>
* If the given {@link AdapterHttpClientConfig} contains the attribute {@code proxy-url} we use the
* given URL as a proxy server, otherwise the proxy configuration is ignored.
* </p>
*
* @param adapterConfig
*/
private void configureProxyForAuthServerIfProvided(AdapterHttpClientConfig adapterConfig) {
if (adapterConfig == null || adapterConfig.getProxyUrl() == null || adapterConfig.getProxyUrl().trim().isEmpty()) {
return;
}
URI uri = URI.create(adapterConfig.getProxyUrl());
this.proxyHost = new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme());
}
}
@@ -1,12 +1,12 @@
/*
* Copyright 2014 Red Hat Inc. and/or its affiliates and other contributors
* as indicated by the @author tags. All rights reserved.
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -0,0 +1,417 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.apache.http.client.HttpClient;
import org.jboss.logging.Logger;
import org.keycloak.adapters.authentication.ClientCredentialsProvider;
import org.keycloak.adapters.authorization.PolicyEnforcer;
import org.keycloak.adapters.rotation.PublicKeyLocator;
import org.keycloak.common.enums.RelativeUrlsUsed;
import org.keycloak.common.enums.SslRequired;
import org.keycloak.common.util.KeycloakUriBuilder;
import org.keycloak.constants.ServiceUrlConstants;
import org.keycloak.enums.TokenStore;
import org.keycloak.representations.adapters.config.AdapterConfig;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public class KeycloakDeployment {
private static final Logger log = Logger.getLogger(KeycloakDeployment.class);
protected RelativeUrlsUsed relativeUrls;
protected String realm;
protected PublicKeyLocator publicKeyLocator;
protected String authServerBaseUrl;
protected String realmInfoUrl;
protected KeycloakUriBuilder authUrl;
protected String tokenUrl;
protected KeycloakUriBuilder logoutUrl;
protected String accountUrl;
protected String registerNodeUrl;
protected String unregisterNodeUrl;
protected String jwksUrl;
protected String principalAttribute = "sub";
protected String resourceName;
protected boolean bearerOnly;
protected boolean autodetectBearerOnly;
protected boolean enableBasicAuth;
protected boolean publicClient;
protected Map<String, Object> resourceCredentials = new HashMap<>();
protected ClientCredentialsProvider clientAuthenticator;
protected HttpClient client;
protected String scope;
protected SslRequired sslRequired = SslRequired.ALL;
protected TokenStore tokenStore = TokenStore.SESSION;
protected String stateCookieName = "OAuth_Token_Request_State";
protected boolean useResourceRoleMappings;
protected boolean cors;
protected int corsMaxAge = -1;
protected String corsAllowedHeaders;
protected String corsAllowedMethods;
protected boolean exposeToken;
protected boolean alwaysRefreshToken;
protected boolean registerNodeAtStartup;
protected int registerNodePeriod;
protected boolean turnOffChangeSessionIdOnLogin;
protected volatile int notBefore;
protected int tokenMinimumTimeToLive;
protected int minTimeBetweenJwksRequests;
protected int publicKeyCacheTtl;
private PolicyEnforcer policyEnforcer;
public KeycloakDeployment() {
}
public boolean isConfigured() {
return getRealm() != null && getPublicKeyLocator() != null && (isBearerOnly() || getAuthServerBaseUrl() != null);
}
public String getResourceName() {
return resourceName;
}
public String getRealm() {
return realm;
}
public void setRealm(String realm) {
this.realm = realm;
}
public PublicKeyLocator getPublicKeyLocator() {
return publicKeyLocator;
}
public void setPublicKeyLocator(PublicKeyLocator publicKeyLocator) {
this.publicKeyLocator = publicKeyLocator;
}
public String getAuthServerBaseUrl() {
return authServerBaseUrl;
}
public void setAuthServerBaseUrl(AdapterConfig config) {
this.authServerBaseUrl = config.getAuthServerUrl();
if (authServerBaseUrl == null) return;
URI authServerUri = URI.create(authServerBaseUrl);
if (authServerUri.getHost() == null) {
relativeUrls = RelativeUrlsUsed.ALWAYS;
} else {
// We have absolute URI in config
relativeUrls = RelativeUrlsUsed.NEVER;
KeycloakUriBuilder serverBuilder = KeycloakUriBuilder.fromUri(authServerBaseUrl);
resolveUrls(serverBuilder);
}
}
/**
* @param authUrlBuilder absolute URI
*/
protected void resolveUrls(KeycloakUriBuilder authUrlBuilder) {
if (log.isDebugEnabled()) {
log.debug("resolveUrls");
}
String login = authUrlBuilder.clone().path(ServiceUrlConstants.AUTH_PATH).build(getRealm()).toString();
authUrl = KeycloakUriBuilder.fromUri(login);
realmInfoUrl = authUrlBuilder.clone().path(ServiceUrlConstants.REALM_INFO_PATH).build(getRealm()).toString();
tokenUrl = authUrlBuilder.clone().path(ServiceUrlConstants.TOKEN_PATH).build(getRealm()).toString();
logoutUrl = KeycloakUriBuilder.fromUri(authUrlBuilder.clone().path(ServiceUrlConstants.TOKEN_SERVICE_LOGOUT_PATH).build(getRealm()).toString());
accountUrl = authUrlBuilder.clone().path(ServiceUrlConstants.ACCOUNT_SERVICE_PATH).build(getRealm()).toString();
registerNodeUrl = authUrlBuilder.clone().path(ServiceUrlConstants.CLIENTS_MANAGEMENT_REGISTER_NODE_PATH).build(getRealm()).toString();
unregisterNodeUrl = authUrlBuilder.clone().path(ServiceUrlConstants.CLIENTS_MANAGEMENT_UNREGISTER_NODE_PATH).build(getRealm()).toString();
jwksUrl = authUrlBuilder.clone().path(ServiceUrlConstants.JWKS_URL).build(getRealm()).toString();
}
public RelativeUrlsUsed getRelativeUrls() {
return relativeUrls;
}
public String getRealmInfoUrl() {
return realmInfoUrl;
}
public KeycloakUriBuilder getAuthUrl() {
return authUrl;
}
public String getTokenUrl() {
return tokenUrl;
}
public KeycloakUriBuilder getLogoutUrl() {
return logoutUrl;
}
public String getAccountUrl() {
return accountUrl;
}
public String getRegisterNodeUrl() {
return registerNodeUrl;
}
public String getUnregisterNodeUrl() {
return unregisterNodeUrl;
}
public String getJwksUrl() {
return jwksUrl;
}
public void setResourceName(String resourceName) {
this.resourceName = resourceName;
}
public boolean isBearerOnly() {
return bearerOnly;
}
public void setBearerOnly(boolean bearerOnly) {
this.bearerOnly = bearerOnly;
}
public boolean isAutodetectBearerOnly() {
return autodetectBearerOnly;
}
public void setAutodetectBearerOnly(boolean autodetectBearerOnly) {
this.autodetectBearerOnly = autodetectBearerOnly;
}
public boolean isEnableBasicAuth() {
return enableBasicAuth;
}
public void setEnableBasicAuth(boolean enableBasicAuth) {
this.enableBasicAuth = enableBasicAuth;
}
public boolean isPublicClient() {
return publicClient;
}
public void setPublicClient(boolean publicClient) {
this.publicClient = publicClient;
}
public Map<String, Object> getResourceCredentials() {
return resourceCredentials;
}
public void setResourceCredentials(Map<String, Object> resourceCredentials) {
this.resourceCredentials = resourceCredentials;
}
public ClientCredentialsProvider getClientAuthenticator() {
return clientAuthenticator;
}
public void setClientAuthenticator(ClientCredentialsProvider clientAuthenticator) {
this.clientAuthenticator = clientAuthenticator;
}
public HttpClient getClient() {
return client;
}
public void setClient(HttpClient client) {
this.client = client;
}
public String getScope() {
return scope;
}
public void setScope(String scope) {
this.scope = scope;
}
public SslRequired getSslRequired() {
return sslRequired;
}
public void setSslRequired(SslRequired sslRequired) {
this.sslRequired = sslRequired;
}
public TokenStore getTokenStore() {
return tokenStore;
}
public void setTokenStore(TokenStore tokenStore) {
this.tokenStore = tokenStore;
}
public String getStateCookieName() {
return stateCookieName;
}
public void setStateCookieName(String stateCookieName) {
this.stateCookieName = stateCookieName;
}
public boolean isUseResourceRoleMappings() {
return useResourceRoleMappings;
}
public void setUseResourceRoleMappings(boolean useResourceRoleMappings) {
this.useResourceRoleMappings = useResourceRoleMappings;
}
public boolean isCors() {
return cors;
}
public void setCors(boolean cors) {
this.cors = cors;
}
public int getCorsMaxAge() {
return corsMaxAge;
}
public void setCorsMaxAge(int corsMaxAge) {
this.corsMaxAge = corsMaxAge;
}
public String getCorsAllowedHeaders() {
return corsAllowedHeaders;
}
public void setCorsAllowedHeaders(String corsAllowedHeaders) {
this.corsAllowedHeaders = corsAllowedHeaders;
}
public String getCorsAllowedMethods() {
return corsAllowedMethods;
}
public void setCorsAllowedMethods(String corsAllowedMethods) {
this.corsAllowedMethods = corsAllowedMethods;
}
public boolean isExposeToken() {
return exposeToken;
}
public void setExposeToken(boolean exposeToken) {
this.exposeToken = exposeToken;
}
public int getNotBefore() {
return notBefore;
}
public void setNotBefore(int notBefore) {
this.notBefore = notBefore;
}
public void updateNotBefore(int notBefore) {
this.notBefore = notBefore;
getPublicKeyLocator().reset(this);
}
public boolean isAlwaysRefreshToken() {
return alwaysRefreshToken;
}
public void setAlwaysRefreshToken(boolean alwaysRefreshToken) {
this.alwaysRefreshToken = alwaysRefreshToken;
}
public boolean isRegisterNodeAtStartup() {
return registerNodeAtStartup;
}
public void setRegisterNodeAtStartup(boolean registerNodeAtStartup) {
this.registerNodeAtStartup = registerNodeAtStartup;
}
public int getRegisterNodePeriod() {
return registerNodePeriod;
}
public void setRegisterNodePeriod(int registerNodePeriod) {
this.registerNodePeriod = registerNodePeriod;
}
public String getPrincipalAttribute() {
return principalAttribute;
}
public void setPrincipalAttribute(String principalAttribute) {
this.principalAttribute = principalAttribute;
}
public boolean isTurnOffChangeSessionIdOnLogin() {
return turnOffChangeSessionIdOnLogin;
}
public void setTurnOffChangeSessionIdOnLogin(boolean turnOffChangeSessionIdOnLogin) {
this.turnOffChangeSessionIdOnLogin = turnOffChangeSessionIdOnLogin;
}
public int getTokenMinimumTimeToLive() {
return tokenMinimumTimeToLive;
}
public void setTokenMinimumTimeToLive(final int tokenMinimumTimeToLive) {
this.tokenMinimumTimeToLive = tokenMinimumTimeToLive;
}
public int getMinTimeBetweenJwksRequests() {
return minTimeBetweenJwksRequests;
}
public void setMinTimeBetweenJwksRequests(int minTimeBetweenJwksRequests) {
this.minTimeBetweenJwksRequests = minTimeBetweenJwksRequests;
}
public int getPublicKeyCacheTtl() {
return publicKeyCacheTtl;
}
public void setPublicKeyCacheTtl(int publicKeyCacheTtl) {
this.publicKeyCacheTtl = publicKeyCacheTtl;
}
public void setPolicyEnforcer(PolicyEnforcer policyEnforcer) {
this.policyEnforcer = policyEnforcer;
}
public PolicyEnforcer getPolicyEnforcer() {
return policyEnforcer;
}
}
@@ -0,0 +1,158 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.jboss.logging.Logger;
import org.keycloak.adapters.authentication.ClientCredentialsProviderUtils;
import org.keycloak.adapters.authorization.PolicyEnforcer;
import org.keycloak.adapters.rotation.HardcodedPublicKeyLocator;
import org.keycloak.adapters.rotation.JWKPublicKeyLocator;
import org.keycloak.common.enums.SslRequired;
import org.keycloak.common.util.PemUtils;
import org.keycloak.enums.TokenStore;
import org.keycloak.representations.adapters.config.AdapterConfig;
import org.keycloak.representations.adapters.config.PolicyEnforcerConfig;
import org.keycloak.util.SystemPropertiesJsonParserFactory;
import java.io.IOException;
import java.io.InputStream;
import java.security.PublicKey;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public class KeycloakDeploymentBuilder {
private static final Logger log = Logger.getLogger(KeycloakDeploymentBuilder.class);
protected KeycloakDeployment deployment = new KeycloakDeployment();
protected KeycloakDeploymentBuilder() {
}
protected KeycloakDeployment internalBuild(AdapterConfig adapterConfig) {
if (adapterConfig.getRealm() == null) throw new RuntimeException("Must set 'realm' in config");
deployment.setRealm(adapterConfig.getRealm());
String resource = adapterConfig.getResource();
if (resource == null) throw new RuntimeException("Must set 'resource' in config");
deployment.setResourceName(resource);
String realmKeyPem = adapterConfig.getRealmKey();
if (realmKeyPem != null) {
PublicKey realmKey;
try {
realmKey = PemUtils.decodePublicKey(realmKeyPem);
HardcodedPublicKeyLocator pkLocator = new HardcodedPublicKeyLocator(realmKey);
deployment.setPublicKeyLocator(pkLocator);
} catch (Exception e) {
throw new RuntimeException(e);
}
} else {
JWKPublicKeyLocator pkLocator = new JWKPublicKeyLocator();
deployment.setPublicKeyLocator(pkLocator);
}
if (adapterConfig.getSslRequired() != null) {
deployment.setSslRequired(SslRequired.valueOf(adapterConfig.getSslRequired().toUpperCase()));
} else {
deployment.setSslRequired(SslRequired.EXTERNAL);
}
if (adapterConfig.getTokenStore() != null) {
deployment.setTokenStore(TokenStore.valueOf(adapterConfig.getTokenStore().toUpperCase()));
} else {
deployment.setTokenStore(TokenStore.SESSION);
}
if (adapterConfig.getPrincipalAttribute() != null) deployment.setPrincipalAttribute(adapterConfig.getPrincipalAttribute());
deployment.setResourceCredentials(adapterConfig.getCredentials());
deployment.setClientAuthenticator(ClientCredentialsProviderUtils.bootstrapClientAuthenticator(deployment));
deployment.setPublicClient(adapterConfig.isPublicClient());
deployment.setUseResourceRoleMappings(adapterConfig.isUseResourceRoleMappings());
deployment.setExposeToken(adapterConfig.isExposeToken());
if (adapterConfig.isCors()) {
deployment.setCors(true);
deployment.setCorsMaxAge(adapterConfig.getCorsMaxAge());
deployment.setCorsAllowedHeaders(adapterConfig.getCorsAllowedHeaders());
deployment.setCorsAllowedMethods(adapterConfig.getCorsAllowedMethods());
}
deployment.setBearerOnly(adapterConfig.isBearerOnly());
deployment.setAutodetectBearerOnly(adapterConfig.isAutodetectBearerOnly());
deployment.setEnableBasicAuth(adapterConfig.isEnableBasicAuth());
deployment.setAlwaysRefreshToken(adapterConfig.isAlwaysRefreshToken());
deployment.setRegisterNodeAtStartup(adapterConfig.isRegisterNodeAtStartup());
deployment.setRegisterNodePeriod(adapterConfig.getRegisterNodePeriod());
deployment.setTokenMinimumTimeToLive(adapterConfig.getTokenMinimumTimeToLive());
deployment.setMinTimeBetweenJwksRequests(adapterConfig.getMinTimeBetweenJwksRequests());
deployment.setPublicKeyCacheTtl(adapterConfig.getPublicKeyCacheTtl());
if (realmKeyPem == null && adapterConfig.isBearerOnly() && adapterConfig.getAuthServerUrl() == null) {
throw new IllegalArgumentException("For bearer auth, you must set the realm-public-key or auth-server-url");
}
if (realmKeyPem == null || !deployment.isBearerOnly() || deployment.isEnableBasicAuth() || deployment.isRegisterNodeAtStartup() || deployment.getRegisterNodePeriod() != -1) {
deployment.setClient(new HttpClientBuilder().build(adapterConfig));
}
if (adapterConfig.getAuthServerUrl() == null && (!deployment.isBearerOnly() || realmKeyPem == null)) {
throw new RuntimeException("You must specify auth-server-url");
}
deployment.setAuthServerBaseUrl(adapterConfig);
if (adapterConfig.getTurnOffChangeSessionIdOnLogin() != null) {
deployment.setTurnOffChangeSessionIdOnLogin(adapterConfig.getTurnOffChangeSessionIdOnLogin());
}
PolicyEnforcerConfig policyEnforcerConfig = adapterConfig.getPolicyEnforcerConfig();
if (policyEnforcerConfig != null) {
deployment.setPolicyEnforcer(new PolicyEnforcer(deployment, adapterConfig));
}
log.debug("Use authServerUrl: " + deployment.getAuthServerBaseUrl() + ", tokenUrl: " + deployment.getTokenUrl() + ", relativeUrls: " + deployment.getRelativeUrls());
return deployment;
}
public static KeycloakDeployment build(InputStream is) {
AdapterConfig adapterConfig = loadAdapterConfig(is);
return new KeycloakDeploymentBuilder().internalBuild(adapterConfig);
}
public static AdapterConfig loadAdapterConfig(InputStream is) {
ObjectMapper mapper = new ObjectMapper(new SystemPropertiesJsonParserFactory());
mapper.setSerializationInclusion(JsonInclude.Include.NON_DEFAULT);
AdapterConfig adapterConfig;
try {
adapterConfig = mapper.readValue(is, AdapterConfig.class);
} catch (IOException e) {
throw new RuntimeException(e);
}
return adapterConfig;
}
public static KeycloakDeployment build(AdapterConfig adapterConfig) {
return new KeycloakDeploymentBuilder().internalBuild(adapterConfig);
}
}
@@ -1,5 +1,26 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.jboss.logging.Logger;
import org.keycloak.common.util.HostUtils;
import org.keycloak.common.util.Time;
import java.io.IOException;
import java.util.Collection;
import java.util.Map;
@@ -7,10 +28,6 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import org.jboss.logging.Logger;
import org.keycloak.common.util.HostUtils;
import org.keycloak.common.util.Time;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
@@ -1,21 +1,41 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.jboss.logging.Logger;
import org.keycloak.OAuth2Constants;
import org.keycloak.RSATokenVerifier;
import org.keycloak.adapters.rotation.AdapterRSATokenVerifier;
import org.keycloak.adapters.spi.AdapterSessionStore;
import org.keycloak.adapters.spi.AuthChallenge;
import org.keycloak.adapters.spi.AuthOutcome;
import org.keycloak.adapters.spi.HttpFacade;
import org.keycloak.common.VerificationException;
import org.keycloak.common.util.Encode;
import org.keycloak.common.util.KeycloakUriBuilder;
import org.keycloak.common.util.UriUtils;
import org.keycloak.constants.AdapterConstants;
import org.keycloak.enums.TokenStore;
import org.keycloak.jose.jws.JWSInput;
import org.keycloak.jose.jws.JWSInputException;
import org.keycloak.representations.AccessToken;
import org.keycloak.representations.AccessTokenResponse;
import org.keycloak.representations.IDToken;
import org.keycloak.common.util.KeycloakUriBuilder;
import org.keycloak.common.util.UriUtils;
import org.keycloak.util.TokenUtil;
import java.io.IOException;
import java.util.concurrent.atomic.AtomicLong;
@@ -141,10 +161,16 @@ public class OAuthRequestAuthenticator {
String scope = getQueryParamValue(OAuth2Constants.SCOPE);
url = UriUtils.stripQueryParam(url, OAuth2Constants.SCOPE);
String prompt = getQueryParamValue(OAuth2Constants.PROMPT);
url = UriUtils.stripQueryParam(url, OAuth2Constants.PROMPT);
String maxAge = getQueryParamValue(OAuth2Constants.MAX_AGE);
url = UriUtils.stripQueryParam(url, OAuth2Constants.MAX_AGE);
KeycloakUriBuilder redirectUriBuilder = deployment.getAuthUrl().clone()
.queryParam(OAuth2Constants.RESPONSE_TYPE, OAuth2Constants.CODE)
.queryParam(OAuth2Constants.CLIENT_ID, deployment.getResourceName())
.queryParam(OAuth2Constants.REDIRECT_URI, url)
.queryParam(OAuth2Constants.REDIRECT_URI, Encode.encodeQueryParamAsIs(url)) // Need to encode uri ourselves as queryParam() will not encode % characters.
.queryParam(OAuth2Constants.STATE, state)
.queryParam("login", "true");
if(loginHint != null && loginHint.length() > 0){
@@ -153,9 +179,15 @@ public class OAuthRequestAuthenticator {
if (idpHint != null && idpHint.length() > 0) {
redirectUriBuilder.queryParam(AdapterConstants.KC_IDP_HINT,idpHint);
}
if (scope != null && scope.length() > 0) {
redirectUriBuilder.queryParam(OAuth2Constants.SCOPE, scope);
if (prompt != null && prompt.length() > 0) {
redirectUriBuilder.queryParam(OAuth2Constants.PROMPT, prompt);
}
if (maxAge != null && maxAge.length() > 0) {
redirectUriBuilder.queryParam(OAuth2Constants.MAX_AGE, maxAge);
}
scope = TokenUtil.attachOIDCScope(scope);
redirectUriBuilder.queryParam(OAuth2Constants.SCOPE, scope);
return redirectUriBuilder.build().toString();
}
@@ -164,41 +196,18 @@ public class OAuthRequestAuthenticator {
return sslRedirectPort;
}
protected static final AtomicLong counter = new AtomicLong();
protected String getStateCode() {
return counter.getAndIncrement() + "/" + AdapterUtils.generateId();
return AdapterUtils.generateId();
}
protected AuthChallenge loginRedirect() {
final String state = getStateCode();
final String redirect = getRedirectUri(state);
final String redirect = getRedirectUri(state);
if (redirect == null) {
return new AuthChallenge() {
@Override
public boolean challenge(HttpFacade exchange) {
exchange.getResponse().setStatus(403);
return true;
}
@Override
public boolean errorPage() {
return true;
}
@Override
public int getResponseCode() {
return 403;
}
};
return challenge(403, OIDCAuthenticationError.Reason.NO_REDIRECT_URI, null);
}
return new AuthChallenge() {
@Override
public boolean errorPage() {
return false;
}
@Override
public int getResponseCode() {
return 0;
@@ -209,7 +218,7 @@ public class OAuthRequestAuthenticator {
tokenStore.saveRequest();
log.debug("Sending redirect to login page: " + redirect);
exchange.getResponse().setStatus(302);
exchange.getResponse().setCookie(deployment.getStateCookieName(), state, /* need to set path? */ null, null, -1, deployment.getSslRequired().isRequired(facade.getRequest().getRemoteAddr()), false);
exchange.getResponse().setCookie(deployment.getStateCookieName(), state, /* need to set path? */ null, null, -1, deployment.getSslRequired().isRequired(facade.getRequest().getRemoteAddr()), true);
exchange.getResponse().setHeader("Location", redirect);
return true;
}
@@ -221,7 +230,7 @@ public class OAuthRequestAuthenticator {
if (stateCookie == null) {
log.warn("No state cookie");
return challenge(400);
return challenge(400, OIDCAuthenticationError.Reason.INVALID_STATE_COOKIE, null);
}
// reset the cookie
log.debug("** reseting application state cookie");
@@ -231,13 +240,13 @@ public class OAuthRequestAuthenticator {
String state = getQueryParamValue(OAuth2Constants.STATE);
if (state == null) {
log.warn("state parameter was null");
return challenge(400);
return challenge(400, OIDCAuthenticationError.Reason.INVALID_STATE_COOKIE, null);
}
if (!state.equals(stateCookieValue)) {
log.warn("state parameter invalid");
log.warn("cookie: " + stateCookieValue);
log.warn("queryParam: " + state);
return challenge(400);
return challenge(400, OIDCAuthenticationError.Reason.INVALID_STATE_COOKIE, null);
}
return null;
@@ -251,7 +260,7 @@ public class OAuthRequestAuthenticator {
if (error != null) {
// todo how do we send a response?
log.warn("There was an error: " + error);
challenge = challenge(400);
challenge = challenge(400, OIDCAuthenticationError.Reason.OAUTH_ERROR, error);
return AuthOutcome.FAILED;
} else {
log.debug("redirecting to auth server");
@@ -269,13 +278,8 @@ public class OAuthRequestAuthenticator {
}
protected AuthChallenge challenge(final int code) {
protected AuthChallenge challenge(final int code, final OIDCAuthenticationError.Reason reason, final String description) {
return new AuthChallenge() {
@Override
public boolean errorPage() {
return true;
}
@Override
public int getResponseCode() {
return code;
@@ -283,7 +287,9 @@ public class OAuthRequestAuthenticator {
@Override
public boolean challenge(HttpFacade exchange) {
exchange.getResponse().setStatus(code);
OIDCAuthenticationError error = new OIDCAuthenticationError(reason, description);
exchange.getRequest().setError(error);
exchange.getResponse().sendError(code);
return true;
}
};
@@ -305,7 +311,7 @@ public class OAuthRequestAuthenticator {
// abort if not HTTPS
if (!isRequestSecure() && deployment.getSslRequired().isRequired(facade.getRequest().getRemoteAddr())) {
log.error("Adapter requires SSL. Request: " + facade.getRequest().getURI());
return challenge(403);
return challenge(403, OIDCAuthenticationError.Reason.SSL_REQUIRED, null);
}
log.debug("checking state cookie for after code");
@@ -316,7 +322,7 @@ public class OAuthRequestAuthenticator {
strippedOauthParametersRequestUri = stripOauthParametersFromRedirect();
try {
// For COOKIE store we don't have httpSessionId and single sign-out won't be available
String httpSessionId = deployment.getTokenStore() == TokenStore.SESSION ? reqAuthenticator.getHttpSessionId(true) : null;
String httpSessionId = deployment.getTokenStore() == TokenStore.SESSION ? reqAuthenticator.changeHttpSessionId(true) : null;
tokenResponse = ServerRequest.invokeAccessCodeToToken(deployment, code, strippedOauthParametersRequestUri, httpSessionId);
} catch (ServerRequest.HttpFailure failure) {
log.error("failed to turn code into token");
@@ -324,37 +330,37 @@ public class OAuthRequestAuthenticator {
if (failure.getStatus() == 400 && failure.getError() != null) {
log.error(" " + failure.getError());
}
return challenge(403);
return challenge(403, OIDCAuthenticationError.Reason.CODE_TO_TOKEN_FAILURE, null);
} catch (IOException e) {
log.error("failed to turn code into token", e);
return challenge(403);
return challenge(403, OIDCAuthenticationError.Reason.CODE_TO_TOKEN_FAILURE, null);
}
tokenString = tokenResponse.getToken();
refreshToken = tokenResponse.getRefreshToken();
idTokenString = tokenResponse.getIdToken();
try {
token = RSATokenVerifier.verifyToken(tokenString, deployment.getRealmKey(), deployment.getRealmInfoUrl());
token = AdapterRSATokenVerifier.verifyToken(tokenString, deployment);
if (idTokenString != null) {
JWSInput input = new JWSInput(idTokenString);
try {
JWSInput input = new JWSInput(idTokenString);
idToken = input.readJsonContent(IDToken.class);
} catch (IOException e) {
} catch (JWSInputException e) {
throw new VerificationException();
}
}
log.debug("Token Verification succeeded!");
} catch (VerificationException e) {
log.error("failed verification of token: " + e.getMessage());
return challenge(403);
return challenge(403, OIDCAuthenticationError.Reason.INVALID_TOKEN, null);
}
if (tokenResponse.getNotBeforePolicy() > deployment.getNotBefore()) {
deployment.setNotBefore(tokenResponse.getNotBeforePolicy());
deployment.updateNotBefore(tokenResponse.getNotBeforePolicy());
}
if (token.getIssuedAt() < deployment.getNotBefore()) {
log.error("Stale token");
return challenge(403);
return challenge(403, OIDCAuthenticationError.Reason.STALE_TOKEN, null);
}
log.debug("successful authenticated");
return null;
@@ -0,0 +1,64 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.keycloak.adapters.spi.AuthenticationError;
/**
* Object that describes the OIDC error that happened.
*
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public class OIDCAuthenticationError implements AuthenticationError {
public static enum Reason {
NO_BEARER_TOKEN,
NO_REDIRECT_URI,
INVALID_STATE_COOKIE,
OAUTH_ERROR,
SSL_REQUIRED,
CODE_TO_TOKEN_FAILURE,
INVALID_TOKEN,
STALE_TOKEN,
NO_AUTHORIZATION_HEADER,
NO_QUERY_PARAMETER_ACCESS_TOKEN
}
private Reason reason;
private String description;
public OIDCAuthenticationError(Reason reason, String description) {
this.reason = reason;
this.description = description;
}
public Reason getReason() {
return reason;
}
public String getDescription() {
return description;
}
@Override
public String toString() {
return "OIDCAuthenticationError [reason=" + reason + ", description=" + description + "]";
}
}
@@ -0,0 +1,32 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.keycloak.KeycloakSecurityContext;
import org.keycloak.adapters.spi.HttpFacade;
/**
* Bridge between core adapter and HTTP Engine
*
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public interface OIDCHttpFacade extends HttpFacade {
KeycloakSecurityContext getSecurityContext();
}
@@ -0,0 +1,29 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.keycloak.KeycloakSecurityContext;
import org.keycloak.adapters.spi.KeycloakAccount;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public interface OidcKeycloakAccount extends KeycloakAccount {
KeycloakSecurityContext getKeycloakSecurityContext();
}
@@ -0,0 +1,282 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import java.security.PublicKey;
import org.jboss.logging.Logger;
import org.keycloak.adapters.authentication.ClientCredentialsProvider;
import org.keycloak.adapters.authentication.JWTClientCredentialsProvider;
import org.keycloak.adapters.rotation.AdapterRSATokenVerifier;
import org.keycloak.adapters.spi.HttpFacade;
import org.keycloak.adapters.spi.UserSessionManagement;
import org.keycloak.common.util.StreamUtil;
import org.keycloak.jose.jwk.JSONWebKeySet;
import org.keycloak.jose.jwk.JWK;
import org.keycloak.jose.jwk.JWKBuilder;
import org.keycloak.jose.jws.JWSInputException;
import org.keycloak.representations.VersionRepresentation;
import org.keycloak.constants.AdapterConstants;
import org.keycloak.jose.jws.JWSInput;
import org.keycloak.jose.jws.JWSInputException;
import org.keycloak.jose.jws.crypto.RSAProvider;
import org.keycloak.representations.VersionRepresentation;
import org.keycloak.representations.adapters.action.AdminAction;
import org.keycloak.representations.adapters.action.LogoutAction;
import org.keycloak.representations.adapters.action.PushNotBeforeAction;
import org.keycloak.representations.adapters.action.TestAvailabilityAction;
import org.keycloak.util.JsonSerialization;
import java.security.PublicKey;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public class PreAuthActionsHandler {
private static final Logger log = Logger.getLogger(PreAuthActionsHandler.class);
protected UserSessionManagement userSessionManagement;
protected AdapterDeploymentContext deploymentContext;
protected KeycloakDeployment deployment;
protected HttpFacade facade;
public PreAuthActionsHandler(UserSessionManagement userSessionManagement, AdapterDeploymentContext deploymentContext, HttpFacade facade) {
this.userSessionManagement = userSessionManagement;
this.deploymentContext = deploymentContext;
this.facade = facade;
}
protected boolean resolveDeployment() {
deployment = deploymentContext.resolveDeployment(facade);
if (!deployment.isConfigured()) {
log.warn("can't take request, adapter not configured");
facade.getResponse().sendError(403, "adapter not configured");
return false;
}
return true;
}
public boolean handleRequest() {
String requestUri = facade.getRequest().getURI();
log.debugv("adminRequest {0}", requestUri);
if (preflightCors()) {
return true;
}
if (requestUri.endsWith(AdapterConstants.K_LOGOUT)) {
if (!resolveDeployment()) return true;
handleLogout();
return true;
} else if (requestUri.endsWith(AdapterConstants.K_PUSH_NOT_BEFORE)) {
if (!resolveDeployment()) return true;
handlePushNotBefore();
return true;
} else if (requestUri.endsWith(AdapterConstants.K_VERSION)) {
handleVersion();
return true;
} else if (requestUri.endsWith(AdapterConstants.K_TEST_AVAILABLE)) {
if (!resolveDeployment()) return true;
handleTestAvailable();
return true;
} else if (requestUri.endsWith(AdapterConstants.K_JWKS)) {
if (!resolveDeployment()) return true;
handleJwksRequest();
return true;
}
return false;
}
public boolean preflightCors() {
// don't need to resolve deployment on cors requests. Just need to know local cors config.
KeycloakDeployment deployment = deploymentContext.resolveDeployment(facade);
if (!deployment.isCors()) return false;
log.debugv("checkCorsPreflight {0}", facade.getRequest().getURI());
if (!facade.getRequest().getMethod().equalsIgnoreCase("OPTIONS")) {
return false;
}
if (facade.getRequest().getHeader(CorsHeaders.ORIGIN) == null) {
log.debug("checkCorsPreflight: no origin header");
return false;
}
log.debug("Preflight request returning");
facade.getResponse().setStatus(200);
String origin = facade.getRequest().getHeader(CorsHeaders.ORIGIN);
facade.getResponse().setHeader(CorsHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, origin);
facade.getResponse().setHeader(CorsHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true");
String requestMethods = facade.getRequest().getHeader(CorsHeaders.ACCESS_CONTROL_REQUEST_METHOD);
if (requestMethods != null) {
if (deployment.getCorsAllowedMethods() != null) {
requestMethods = deployment.getCorsAllowedMethods();
}
facade.getResponse().setHeader(CorsHeaders.ACCESS_CONTROL_ALLOW_METHODS, requestMethods);
}
String allowHeaders = facade.getRequest().getHeader(CorsHeaders.ACCESS_CONTROL_REQUEST_HEADERS);
if (allowHeaders != null) {
if (deployment.getCorsAllowedHeaders() != null) {
allowHeaders = deployment.getCorsAllowedHeaders();
}
facade.getResponse().setHeader(CorsHeaders.ACCESS_CONTROL_ALLOW_HEADERS, allowHeaders);
}
if (deployment.getCorsMaxAge() > -1) {
facade.getResponse().setHeader(CorsHeaders.ACCESS_CONTROL_MAX_AGE, Integer.toString(deployment.getCorsMaxAge()));
}
return true;
}
protected void handleLogout() {
if (log.isTraceEnabled()) {
log.trace("K_LOGOUT sent");
}
try {
JWSInput token = verifyAdminRequest();
if (token == null) {
return;
}
LogoutAction action = JsonSerialization.readValue(token.getContent(), LogoutAction.class);
if (!validateAction(action)) return;
if (action.getAdapterSessionIds() != null) {
userSessionManagement.logoutHttpSessions(action.getAdapterSessionIds());
} else {
log.debugf("logout of all sessions for application '%s'", action.getResource());
if (action.getNotBefore() > deployment.getNotBefore()) {
deployment.updateNotBefore(action.getNotBefore());
}
userSessionManagement.logoutAll();
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
protected void handlePushNotBefore() {
if (log.isTraceEnabled()) {
log.trace("K_PUSH_NOT_BEFORE sent");
}
try {
JWSInput token = verifyAdminRequest();
if (token == null) {
return;
}
PushNotBeforeAction action = JsonSerialization.readValue(token.getContent(), PushNotBeforeAction.class);
if (!validateAction(action)) return;
deployment.updateNotBefore(action.getNotBefore());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
protected void handleTestAvailable() {
if (log.isTraceEnabled()) {
log.trace("K_TEST_AVAILABLE sent");
}
try {
JWSInput token = verifyAdminRequest();
if (token == null) {
return;
}
TestAvailabilityAction action = JsonSerialization.readValue(token.getContent(), TestAvailabilityAction.class);
validateAction(action);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
protected JWSInput verifyAdminRequest() throws Exception {
if (!facade.getRequest().isSecure() && deployment.getSslRequired().isRequired(facade.getRequest().getRemoteAddr())) {
log.warn("SSL is required for adapter admin action");
facade.getResponse().sendError(403, "ssl required");
return null;
}
String token = StreamUtil.readString(facade.getRequest().getInputStream());
if (token == null) {
log.warn("admin request failed, no token");
facade.getResponse().sendError(403, "no token");
return null;
}
try {
JWSInput input = new JWSInput(token);
PublicKey publicKey = AdapterRSATokenVerifier.getPublicKey(input.getHeader().getKeyId(), deployment);
if (RSAProvider.verify(input, publicKey)) {
return input;
}
} catch (JWSInputException ignore) {
}
log.warn("admin request failed, unable to verify token");
facade.getResponse().sendError(403, "no token");
return null;
}
protected boolean validateAction(AdminAction action) {
if (!action.validate()) {
log.warn("admin request failed, not validated" + action.getAction());
facade.getResponse().sendError(400, "Not validated");
return false;
}
if (action.isExpired()) {
log.warn("admin request failed, expired token");
facade.getResponse().sendError(400, "Expired token");
return false;
}
if (!deployment.getResourceName().equals(action.getResource())) {
log.warn("Resource name does not match");
facade.getResponse().sendError(400, "Resource name does not match");
return false;
}
return true;
}
protected void handleVersion() {
try {
facade.getResponse().setStatus(200);
facade.getResponse().setHeader("Content-Type", "application/json");
JsonSerialization.writeValueToStream(facade.getResponse().getOutputStream(), VersionRepresentation.SINGLETON);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
protected void handleJwksRequest() {
try {
JSONWebKeySet jwks = new JSONWebKeySet();
ClientCredentialsProvider clientCredentialsProvider = deployment.getClientAuthenticator();
// For now, just get signature key from JWT provider. We can add more if we support encryption etc.
if (clientCredentialsProvider instanceof JWTClientCredentialsProvider) {
PublicKey publicKey = ((JWTClientCredentialsProvider) clientCredentialsProvider).getPublicKey();
JWK jwk = JWKBuilder.create().rs256(publicKey);
jwks.setKeys(new JWK[] { jwk });
} else {
jwks.setKeys(new JWK[] {});
}
facade.getResponse().setStatus(200);
facade.getResponse().setHeader("Content-Type", "application/json");
JsonSerialization.writeValueToStream(facade.getResponse().getOutputStream(), jwks);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
@@ -0,0 +1,54 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.jboss.logging.Logger;
import org.keycloak.adapters.spi.AuthOutcome;
import org.keycloak.adapters.spi.HttpFacade;
/**
* @author <a href="mailto:froehlich.ch@gmail.com">Christian Froehlich</a>
* @version $Revision: 1 $
*/
public class QueryParamterTokenRequestAuthenticator extends BearerTokenRequestAuthenticator {
public static final String ACCESS_TOKEN = "access_token";
protected Logger log = Logger.getLogger(QueryParamterTokenRequestAuthenticator.class);
public QueryParamterTokenRequestAuthenticator(KeycloakDeployment deployment) {
super(deployment);
}
public AuthOutcome authenticate(HttpFacade exchange) {
tokenString = null;
tokenString = getAccessTokenFromQueryParamter(exchange);
if (tokenString == null || tokenString.trim().isEmpty()) {
challenge = challengeResponse(exchange, OIDCAuthenticationError.Reason.NO_QUERY_PARAMETER_ACCESS_TOKEN, null, null);
return AuthOutcome.NOT_ATTEMPTED;
}
return (authenticateToken(exchange, tokenString));
}
String getAccessTokenFromQueryParamter(HttpFacade exchange) {
try {
if (exchange != null && exchange.getRequest() != null) {
return exchange.getRequest().getQueryParamValue(ACCESS_TOKEN);
}
} catch (Exception ignore) {
}
return null;
}
}
@@ -0,0 +1,165 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.jboss.logging.Logger;
import org.keycloak.AuthorizationContext;
import org.keycloak.KeycloakSecurityContext;
import org.keycloak.adapters.rotation.AdapterRSATokenVerifier;
import org.keycloak.common.VerificationException;
import org.keycloak.common.util.Time;
import org.keycloak.representations.AccessToken;
import org.keycloak.representations.AccessTokenResponse;
import org.keycloak.representations.IDToken;
import java.io.IOException;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public class RefreshableKeycloakSecurityContext extends KeycloakSecurityContext {
protected static Logger log = Logger.getLogger(RefreshableKeycloakSecurityContext.class);
protected transient KeycloakDeployment deployment;
protected transient AdapterTokenStore tokenStore;
protected String refreshToken;
public RefreshableKeycloakSecurityContext() {
}
public RefreshableKeycloakSecurityContext(KeycloakDeployment deployment, AdapterTokenStore tokenStore, String tokenString, AccessToken token, String idTokenString, IDToken idToken, String refreshToken) {
super(tokenString, token, idTokenString, idToken);
this.deployment = deployment;
this.tokenStore = tokenStore;
this.refreshToken = refreshToken;
}
@Override
public AccessToken getToken() {
refreshExpiredToken(true);
return super.getToken();
}
@Override
public String getTokenString() {
refreshExpiredToken(true);
return super.getTokenString();
}
public String getRefreshToken() {
return refreshToken;
}
public void logout(KeycloakDeployment deployment) {
try {
ServerRequest.invokeLogout(deployment, refreshToken);
} catch (Exception e) {
log.error("failed to invoke remote logout", e);
}
}
public boolean isActive() {
return token != null && this.token.isActive() && deployment!=null && this.token.getIssuedAt() > deployment.getNotBefore();
}
public boolean isTokenTimeToLiveSufficient(AccessToken token) {
return token != null && (token.getExpiration() - this.deployment.getTokenMinimumTimeToLive()) > Time.currentTime();
}
public KeycloakDeployment getDeployment() {
return deployment;
}
public void setCurrentRequestInfo(KeycloakDeployment deployment, AdapterTokenStore tokenStore) {
this.deployment = deployment;
this.tokenStore = tokenStore;
}
/**
* @param checkActive if true, then we won't send refresh request if current accessToken is still active.
* @return true if accessToken is active or was successfully refreshed
*/
public boolean refreshExpiredToken(boolean checkActive) {
if (checkActive) {
if (log.isTraceEnabled()) {
log.trace("checking whether to refresh.");
}
if (isActive() && isTokenTimeToLiveSufficient(this.token)) return true;
}
if (this.deployment == null || refreshToken == null) return false; // Might be serialized in HttpSession?
if (!this.getRealm().equals(this.deployment.getRealm())) {
// this should not happen, but let's check it anyway
return false;
}
if (log.isTraceEnabled()) {
log.trace("Doing refresh");
}
AccessTokenResponse response = null;
try {
response = ServerRequest.invokeRefresh(deployment, refreshToken);
} catch (IOException e) {
log.error("Refresh token failure", e);
return false;
} catch (ServerRequest.HttpFailure httpFailure) {
log.error("Refresh token failure status: " + httpFailure.getStatus() + " " + httpFailure.getError());
return false;
}
if (log.isTraceEnabled()) {
log.trace("received refresh response");
}
String tokenString = response.getToken();
AccessToken token = null;
try {
token = AdapterRSATokenVerifier.verifyToken(tokenString, deployment);
log.debug("Token Verification succeeded!");
} catch (VerificationException e) {
log.error("failed verification of token");
return false;
}
// If the TTL is greater-or-equal to the expire time on the refreshed token, have to abort or go into an infinite refresh loop
if (!isTokenTimeToLiveSufficient(token)) {
log.error("failed to refresh the token with a longer time-to-live than the minimum");
return false;
}
if (response.getNotBeforePolicy() > deployment.getNotBefore()) {
deployment.updateNotBefore(response.getNotBeforePolicy());
}
this.token = token;
if (response.getRefreshToken() != null) {
if (log.isTraceEnabled()) {
log.trace("Setup new refresh token to the security context");
}
this.refreshToken = response.getRefreshToken();
}
this.tokenString = tokenString;
tokenStore.refreshCallback(this);
return true;
}
public void setAuthorizationContext(AuthorizationContext authorizationContext) {
this.authorizationContext = authorizationContext;
}
}
@@ -0,0 +1,239 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import java.util.Collections;
import java.util.List;
import org.jboss.logging.Logger;
import org.keycloak.KeycloakPrincipal;
import org.keycloak.adapters.spi.AuthChallenge;
import org.keycloak.adapters.spi.AuthOutcome;
import org.keycloak.adapters.spi.HttpFacade;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public abstract class RequestAuthenticator {
protected static Logger log = Logger.getLogger(RequestAuthenticator.class);
protected HttpFacade facade;
protected AuthChallenge challenge;
protected KeycloakDeployment deployment;
protected AdapterTokenStore tokenStore;
protected int sslRedirectPort;
public RequestAuthenticator(HttpFacade facade, KeycloakDeployment deployment, AdapterTokenStore tokenStore, int sslRedirectPort) {
this.facade = facade;
this.deployment = deployment;
this.tokenStore = tokenStore;
this.sslRedirectPort = sslRedirectPort;
}
public RequestAuthenticator(HttpFacade facade, KeycloakDeployment deployment) {
this.facade = facade;
this.deployment = deployment;
}
public AuthChallenge getChallenge() {
return challenge;
}
public AuthOutcome authenticate() {
if (log.isTraceEnabled()) {
log.trace("--> authenticate()");
}
BearerTokenRequestAuthenticator bearer = createBearerTokenAuthenticator();
if (log.isTraceEnabled()) {
log.trace("try bearer");
}
AuthOutcome outcome = bearer.authenticate(facade);
if (outcome == AuthOutcome.FAILED) {
challenge = bearer.getChallenge();
log.debug("Bearer FAILED");
return AuthOutcome.FAILED;
} else if (outcome == AuthOutcome.AUTHENTICATED) {
if (verifySSL()) return AuthOutcome.FAILED;
completeAuthentication(bearer, "KEYCLOAK");
log.debug("Bearer AUTHENTICATED");
return AuthOutcome.AUTHENTICATED;
}
QueryParamterTokenRequestAuthenticator queryParamAuth = createQueryParamterTokenRequestAuthenticator();
if (log.isTraceEnabled()) {
log.trace("try query paramter auth");
}
outcome = queryParamAuth.authenticate(facade);
if (outcome == AuthOutcome.FAILED) {
challenge = queryParamAuth.getChallenge();
log.debug("QueryParamAuth auth FAILED");
return AuthOutcome.FAILED;
} else if (outcome == AuthOutcome.AUTHENTICATED) {
if (verifySSL()) return AuthOutcome.FAILED;
log.debug("QueryParamAuth AUTHENTICATED");
completeAuthentication(queryParamAuth, "KEYCLOAK");
return AuthOutcome.AUTHENTICATED;
}
if (deployment.isEnableBasicAuth()) {
BasicAuthRequestAuthenticator basicAuth = createBasicAuthAuthenticator();
if (log.isTraceEnabled()) {
log.trace("try basic auth");
}
outcome = basicAuth.authenticate(facade);
if (outcome == AuthOutcome.FAILED) {
challenge = basicAuth.getChallenge();
log.debug("BasicAuth FAILED");
return AuthOutcome.FAILED;
} else if (outcome == AuthOutcome.AUTHENTICATED) {
if (verifySSL()) return AuthOutcome.FAILED;
log.debug("BasicAuth AUTHENTICATED");
completeAuthentication(basicAuth, "BASIC");
return AuthOutcome.AUTHENTICATED;
}
}
if (deployment.isBearerOnly()) {
challenge = bearer.getChallenge();
log.debug("NOT_ATTEMPTED: bearer only");
return AuthOutcome.NOT_ATTEMPTED;
}
if (isAutodetectedBearerOnly(facade.getRequest())) {
challenge = bearer.getChallenge();
log.debug("NOT_ATTEMPTED: Treating as bearer only");
return AuthOutcome.NOT_ATTEMPTED;
}
if (log.isTraceEnabled()) {
log.trace("try oauth");
}
if (tokenStore.isCached(this)) {
if (verifySSL()) return AuthOutcome.FAILED;
log.debug("AUTHENTICATED: was cached");
return AuthOutcome.AUTHENTICATED;
}
OAuthRequestAuthenticator oauth = createOAuthAuthenticator();
outcome = oauth.authenticate();
if (outcome == AuthOutcome.FAILED) {
challenge = oauth.getChallenge();
return AuthOutcome.FAILED;
} else if (outcome == AuthOutcome.NOT_ATTEMPTED) {
challenge = oauth.getChallenge();
return AuthOutcome.NOT_ATTEMPTED;
}
if (verifySSL()) return AuthOutcome.FAILED;
completeAuthentication(oauth);
// redirect to strip out access code and state query parameters
facade.getResponse().setHeader("Location", oauth.getStrippedOauthParametersRequestUri());
facade.getResponse().setStatus(302);
facade.getResponse().end();
log.debug("AUTHENTICATED");
return AuthOutcome.AUTHENTICATED;
}
protected boolean verifySSL() {
if (!facade.getRequest().isSecure() && deployment.getSslRequired().isRequired(facade.getRequest().getRemoteAddr())) {
log.warn("SSL is required to authenticate");
return true;
}
return false;
}
protected boolean isAutodetectedBearerOnly(HttpFacade.Request request) {
if (!deployment.isAutodetectBearerOnly()) return false;
String headerValue = facade.getRequest().getHeader("X-Requested-With");
if (headerValue != null && headerValue.equalsIgnoreCase("XMLHttpRequest")) {
return true;
}
headerValue = facade.getRequest().getHeader("Faces-Request");
if (headerValue != null && headerValue.startsWith("partial/")) {
return true;
}
headerValue = facade.getRequest().getHeader("SOAPAction");
if (headerValue != null) {
return true;
}
List<String> accepts = facade.getRequest().getHeaders("Accept");
if (accepts == null) accepts = Collections.emptyList();
for (String accept : accepts) {
if (accept.contains("text/html") || accept.contains("text/*") || accept.contains("*/*")) {
return false;
}
}
return true;
}
protected abstract OAuthRequestAuthenticator createOAuthAuthenticator();
protected BearerTokenRequestAuthenticator createBearerTokenAuthenticator() {
return new BearerTokenRequestAuthenticator(deployment);
}
protected BasicAuthRequestAuthenticator createBasicAuthAuthenticator() {
return new BasicAuthRequestAuthenticator(deployment);
}
protected QueryParamterTokenRequestAuthenticator createQueryParamterTokenRequestAuthenticator() {
return new QueryParamterTokenRequestAuthenticator(deployment);
}
protected void completeAuthentication(OAuthRequestAuthenticator oauth) {
RefreshableKeycloakSecurityContext session = new RefreshableKeycloakSecurityContext(deployment, tokenStore, oauth.getTokenString(), oauth.getToken(), oauth.getIdTokenString(), oauth.getIdToken(), oauth.getRefreshToken());
final KeycloakPrincipal<RefreshableKeycloakSecurityContext> principal = new KeycloakPrincipal<RefreshableKeycloakSecurityContext>(AdapterUtils.getPrincipalName(deployment, oauth.getToken()), session);
completeOAuthAuthentication(principal);
log.debugv("User ''{0}'' invoking ''{1}'' on client ''{2}''", principal.getName(), facade.getRequest().getURI(), deployment.getResourceName());
}
protected abstract void completeOAuthAuthentication(KeycloakPrincipal<RefreshableKeycloakSecurityContext> principal);
protected abstract void completeBearerAuthentication(KeycloakPrincipal<RefreshableKeycloakSecurityContext> principal, String method);
/**
* After code is received, we change the session id if possible to guard against https://www.owasp.org/index.php/Session_Fixation
*
* @param create
* @return
*/
protected abstract String changeHttpSessionId(boolean create);
protected void completeAuthentication(BearerTokenRequestAuthenticator bearer, String method) {
RefreshableKeycloakSecurityContext session = new RefreshableKeycloakSecurityContext(deployment, null, bearer.getTokenString(), bearer.getToken(), null, null, null);
final KeycloakPrincipal<RefreshableKeycloakSecurityContext> principal = new KeycloakPrincipal<RefreshableKeycloakSecurityContext>(AdapterUtils.getPrincipalName(deployment, bearer.getToken()), session);
completeBearerAuthentication(principal, method);
log.debugv("User ''{0}'' invoking ''{1}'' on client ''{2}''", principal.getName(), facade.getRequest().getURI(), deployment.getResourceName());
}
}
@@ -1,3 +1,20 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.apache.http.HttpEntity;
@@ -9,12 +26,12 @@ import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.keycloak.OAuth2Constants;
import org.keycloak.adapters.authentication.ClientCredentialsProviderUtils;
import org.keycloak.constants.AdapterConstants;
import org.keycloak.representations.AccessTokenResponse;
import org.keycloak.common.util.HostUtils;
import org.keycloak.util.JsonSerialization;
import org.keycloak.common.util.KeycloakUriBuilder;
import org.keycloak.common.util.StreamUtil;
import org.keycloak.constants.AdapterConstants;
import org.keycloak.representations.AccessTokenResponse;
import org.keycloak.util.JsonSerialization;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -0,0 +1,134 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.apache.http.HttpHost;
import org.apache.http.conn.scheme.HostNameResolver;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.conn.ssl.TrustStrategy;
import org.apache.http.conn.ssl.X509HostnameVerifier;
import org.apache.http.protocol.HttpContext;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
import java.io.IOException;
import java.lang.reflect.Method;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.security.AccessController;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.PrivilegedExceptionAction;
import java.security.SecureRandom;
import java.security.UnrecoverableKeyException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* @author <a href="mailto:mstrukel@redhat.com">Marko Strukelj</a>
*/
public class SniSSLSocketFactory extends SSLSocketFactory {
private static Logger log = Logger.getLogger(SniSSLSocketFactory.class.getName());
public SniSSLSocketFactory(String algorithm, KeyStore keystore, String keyPassword, KeyStore truststore, SecureRandom random, HostNameResolver nameResolver) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
super(algorithm, keystore, keyPassword, truststore, random, nameResolver);
}
public SniSSLSocketFactory(String algorithm, KeyStore keystore, String keyPassword, KeyStore truststore, SecureRandom random, TrustStrategy trustStrategy, X509HostnameVerifier hostnameVerifier) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
super(algorithm, keystore, keyPassword, truststore, random, trustStrategy, hostnameVerifier);
}
public SniSSLSocketFactory(String algorithm, KeyStore keystore, String keyPassword, KeyStore truststore, SecureRandom random, X509HostnameVerifier hostnameVerifier) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
super(algorithm, keystore, keyPassword, truststore, random, hostnameVerifier);
}
public SniSSLSocketFactory(KeyStore keystore, String keystorePassword, KeyStore truststore) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
super(keystore, keystorePassword, truststore);
}
public SniSSLSocketFactory(KeyStore keystore, String keystorePassword) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
super(keystore, keystorePassword);
}
public SniSSLSocketFactory(KeyStore truststore) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
super(truststore);
}
public SniSSLSocketFactory(TrustStrategy trustStrategy, X509HostnameVerifier hostnameVerifier) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
super(trustStrategy, hostnameVerifier);
}
public SniSSLSocketFactory(TrustStrategy trustStrategy) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
super(trustStrategy);
}
public SniSSLSocketFactory(SSLContext sslContext) {
super(sslContext);
}
public SniSSLSocketFactory(SSLContext sslContext, HostNameResolver nameResolver) {
super(sslContext, nameResolver);
}
public SniSSLSocketFactory(SSLContext sslContext, X509HostnameVerifier hostnameVerifier) {
super(sslContext, hostnameVerifier);
}
public SniSSLSocketFactory(SSLContext sslContext, String[] supportedProtocols, String[] supportedCipherSuites, X509HostnameVerifier hostnameVerifier) {
super(sslContext, supportedProtocols, supportedCipherSuites, hostnameVerifier);
}
public SniSSLSocketFactory(javax.net.ssl.SSLSocketFactory socketfactory, X509HostnameVerifier hostnameVerifier) {
super(socketfactory, hostnameVerifier);
}
public SniSSLSocketFactory(javax.net.ssl.SSLSocketFactory socketfactory, String[] supportedProtocols, String[] supportedCipherSuites, X509HostnameVerifier hostnameVerifier) {
super(socketfactory, supportedProtocols, supportedCipherSuites, hostnameVerifier);
}
@Override
public Socket connectSocket(int connectTimeout, Socket socket, HttpHost host, InetSocketAddress remoteAddress, InetSocketAddress localAddress, HttpContext context) throws IOException {
return super.connectSocket(connectTimeout, applySNI(socket, host.getHostName()), host, remoteAddress, localAddress, context);
}
@Override
public Socket createLayeredSocket(Socket socket, String target, int port, HttpContext context) throws IOException {
return super.createLayeredSocket(applySNI(socket, target), target, port, context);
}
private Socket applySNI(final Socket socket, String hostname) {
if (socket instanceof SSLSocket) {
try {
Method setHostMethod = AccessController.doPrivileged(new PrivilegedExceptionAction<Method>() {
public Method run() throws NoSuchMethodException {
return socket.getClass().getMethod("setHost", String.class);
}
});
setHostMethod.invoke(socket, hostname);
log.finest("Applied SNI to socket for: " + hostname);
} catch (Exception e) {
log.log(Level.WARNING, "Failed to apply SNI to SSLSocket", e);
}
}
return socket;
}
}
@@ -1,9 +1,26 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.authentication;
import java.util.Map;
import org.keycloak.adapters.KeycloakDeployment;
import java.util.Map;
/**
* The simple SPI for authenticating clients/applications . It's used by adapter during all OIDC backchannel requests to Keycloak server
* (codeToToken exchange, refresh token or backchannel logout) . You can also use it in your application during direct access grants or service account request
@@ -1,5 +1,28 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.authentication;
import org.apache.http.NameValuePair;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.jboss.logging.Logger;
import org.keycloak.adapters.KeycloakDeployment;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -7,12 +30,6 @@ import java.util.Map;
import java.util.ServiceConfigurationError;
import java.util.ServiceLoader;
import org.apache.http.NameValuePair;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.jboss.logging.Logger;
import org.keycloak.adapters.KeycloakDeployment;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
@@ -0,0 +1,66 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.authentication;
import org.jboss.logging.Logger;
import org.keycloak.OAuth2Constants;
import org.keycloak.adapters.KeycloakDeployment;
import org.keycloak.representations.idm.CredentialRepresentation;
import org.keycloak.util.BasicAuthHelper;
import java.util.Map;
/**
* Traditional OAuth2 authentication of clients based on client_id and client_secret
*
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class ClientIdAndSecretCredentialsProvider implements ClientCredentialsProvider {
private static Logger logger = Logger.getLogger(ClientCredentialsProviderUtils.class);
public static final String PROVIDER_ID = CredentialRepresentation.SECRET;
private String clientSecret;
@Override
public String getId() {
return PROVIDER_ID;
}
@Override
public void init(KeycloakDeployment deployment, Object config) {
clientSecret = (String) config;
}
@Override
public void setClientCredentials(KeycloakDeployment deployment, Map<String, String> requestHeaders, Map<String, String> formParams) {
String clientId = deployment.getResourceName();
if (!deployment.isPublicClient()) {
if (clientSecret != null) {
String authorization = BasicAuthHelper.createHeader(clientId, clientSecret);
requestHeaders.put("Authorization", authorization);
} else {
logger.warnf("Client '%s' doesn't have secret available", clientId);
}
} else {
formParams.put(OAuth2Constants.CLIENT_ID, clientId);
}
}
}
@@ -0,0 +1,159 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.authentication;
import java.security.KeyPair;
import java.security.PublicKey;
import java.util.Map;
import org.keycloak.OAuth2Constants;
import org.keycloak.adapters.AdapterUtils;
import org.keycloak.adapters.KeycloakDeployment;
import org.keycloak.jose.jwk.JWK;
import org.keycloak.jose.jwk.JWKBuilder;
import org.keycloak.jose.jws.JWSBuilder;
import org.keycloak.representations.JsonWebToken;
import org.keycloak.common.util.KeystoreUtil;
import org.keycloak.common.util.Time;
import org.keycloak.jose.jws.JWSBuilder;
import org.keycloak.representations.JsonWebToken;
import java.security.PrivateKey;
import java.util.Map;
/**
* Client authentication based on JWT signed by client private key .
* See <a href="https://tools.ietf.org/html/rfc7519">specs</a> for more details.
*
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class JWTClientCredentialsProvider implements ClientCredentialsProvider {
public static final String PROVIDER_ID = "jwt";
private KeyPair keyPair;
private JWK publicKeyJwk;
private int tokenTimeout;
@Override
public String getId() {
return PROVIDER_ID;
}
public void setupKeyPair(KeyPair keyPair) {
this.keyPair = keyPair;
this.publicKeyJwk = JWKBuilder.create().rs256(keyPair.getPublic());
}
public void setTokenTimeout(int tokenTimeout) {
this.tokenTimeout = tokenTimeout;
}
protected int getTokenTimeout() {
return tokenTimeout;
}
public PublicKey getPublicKey() {
return keyPair.getPublic();
}
@Override
public void init(KeycloakDeployment deployment, Object config) {
if (config == null || !(config instanceof Map)) {
throw new RuntimeException("Configuration of jwt credentials is missing or incorrect for client '" + deployment.getResourceName() + "'. Check your adapter configuration");
}
Map<String, Object> cfg = (Map<String, Object>) config;
String clientKeystoreFile = (String) cfg.get("client-keystore-file");
if (clientKeystoreFile == null) {
throw new RuntimeException("Missing parameter client-keystore-file in configuration of jwt for client " + deployment.getResourceName());
}
String clientKeystoreType = (String) cfg.get("client-keystore-type");
KeystoreUtil.KeystoreFormat clientKeystoreFormat = clientKeystoreType==null ? KeystoreUtil.KeystoreFormat.JKS : Enum.valueOf(KeystoreUtil.KeystoreFormat.class, clientKeystoreType.toUpperCase());
String clientKeystorePassword = (String) cfg.get("client-keystore-password");
if (clientKeystorePassword == null) {
throw new RuntimeException("Missing parameter client-keystore-password in configuration of jwt for client " + deployment.getResourceName());
}
String clientKeyPassword = (String) cfg.get("client-key-password");
if (clientKeyPassword == null) {
clientKeyPassword = clientKeystorePassword;
}
String clientKeyAlias = (String) cfg.get("client-key-alias");
if (clientKeyAlias == null) {
clientKeyAlias = deployment.getResourceName();
}
KeyPair keyPair = KeystoreUtil.loadKeyPairFromKeystore(clientKeystoreFile, clientKeystorePassword, clientKeyPassword, clientKeyAlias, clientKeystoreFormat);
setupKeyPair(keyPair);
this.tokenTimeout = asInt(cfg, "token-timeout", 10);
}
// TODO: Generic method for this?
private Integer asInt(Map<String, Object> cfg, String cfgKey, int defaultValue) {
Object cfgObj = cfg.get(cfgKey);
if (cfgObj == null) {
return defaultValue;
}
if (cfgObj instanceof String) {
return Integer.parseInt(cfgObj.toString());
} else if (cfgObj instanceof Number) {
return ((Number) cfgObj).intValue();
} else {
throw new IllegalArgumentException("Can't parse " + cfgKey + " from the config. Value is " + cfgObj);
}
}
@Override
public void setClientCredentials(KeycloakDeployment deployment, Map<String, String> requestHeaders, Map<String, String> formParams) {
String signedToken = createSignedRequestToken(deployment.getResourceName(), deployment.getRealmInfoUrl());
formParams.put(OAuth2Constants.CLIENT_ASSERTION_TYPE, OAuth2Constants.CLIENT_ASSERTION_TYPE_JWT);
formParams.put(OAuth2Constants.CLIENT_ASSERTION, signedToken);
}
public String createSignedRequestToken(String clientId, String realmInfoUrl) {
JsonWebToken jwt = createRequestToken(clientId, realmInfoUrl);
return new JWSBuilder()
.kid(publicKeyJwk.getKeyId())
.jsonContent(jwt)
.rsa256(keyPair.getPrivate());
}
protected JsonWebToken createRequestToken(String clientId, String realmInfoUrl) {
JsonWebToken reqToken = new JsonWebToken();
reqToken.id(AdapterUtils.generateId());
reqToken.issuer(clientId);
reqToken.subject(clientId);
reqToken.audience(realmInfoUrl);
int now = Time.currentTime();
reqToken.issuedAt(now);
reqToken.expiration(now + this.tokenTimeout);
reqToken.notBefore(now);
return reqToken;
}
}
@@ -0,0 +1,294 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.keycloak.adapters.authorization;
import java.net.URI;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.jboss.logging.Logger;
import org.keycloak.AuthorizationContext;
import org.keycloak.KeycloakSecurityContext;
import org.keycloak.adapters.OIDCHttpFacade;
import org.keycloak.adapters.spi.HttpFacade.Request;
import org.keycloak.adapters.spi.HttpFacade.Response;
import org.keycloak.authorization.client.AuthzClient;
import org.keycloak.authorization.client.representation.ResourceRepresentation;
import org.keycloak.authorization.client.resource.ProtectedResource;
import org.keycloak.representations.AccessToken;
import org.keycloak.representations.adapters.config.PolicyEnforcerConfig;
import org.keycloak.representations.adapters.config.PolicyEnforcerConfig.EnforcementMode;
import org.keycloak.representations.adapters.config.PolicyEnforcerConfig.PathConfig;
import org.keycloak.representations.idm.authorization.Permission;
/**
* @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
*/
public abstract class AbstractPolicyEnforcer {
private static Logger LOGGER = Logger.getLogger(AbstractPolicyEnforcer.class);
private final PolicyEnforcerConfig enforcerConfig;
private final PolicyEnforcer policyEnforcer;
private Map<String, PathConfig> paths;
private AuthzClient authzClient;
private PathMatcher pathMatcher;
public AbstractPolicyEnforcer(PolicyEnforcer policyEnforcer) {
this.policyEnforcer = policyEnforcer;
this.enforcerConfig = policyEnforcer.getEnforcerConfig();
this.authzClient = policyEnforcer.getClient();
this.pathMatcher = new PathMatcher();
this.paths = policyEnforcer.getPaths();
}
public AuthorizationContext authorize(OIDCHttpFacade httpFacade) {
EnforcementMode enforcementMode = this.enforcerConfig.getEnforcementMode();
if (EnforcementMode.DISABLED.equals(enforcementMode)) {
return createEmptyAuthorizationContext(true);
}
KeycloakSecurityContext securityContext = httpFacade.getSecurityContext();
if (securityContext != null) {
AccessToken accessToken = securityContext.getToken();
if (accessToken != null) {
Request request = httpFacade.getRequest();
Response response = httpFacade.getResponse();
String path = getPath(request);
PathConfig pathConfig = this.pathMatcher.matches(path, this.paths);
LOGGER.debugf("Checking permissions for path [%s] with config [%s].", request.getURI(), pathConfig);
if (pathConfig == null) {
if (EnforcementMode.PERMISSIVE.equals(enforcementMode)) {
return createAuthorizationContext(accessToken);
}
LOGGER.debugf("Could not find a configuration for path [%s]", path);
response.sendError(403, "Could not find a configuration for path [" + path + "].");
return createEmptyAuthorizationContext(false);
}
if (EnforcementMode.DISABLED.equals(pathConfig.getEnforcementMode())) {
return createEmptyAuthorizationContext(true);
}
PathConfig actualPathConfig = resolvePathConfig(pathConfig, request);
Set<String> requiredScopes = getRequiredScopes(actualPathConfig, request);
if (isAuthorized(actualPathConfig, requiredScopes, accessToken, httpFacade)) {
try {
return createAuthorizationContext(accessToken);
} catch (Exception e) {
throw new RuntimeException("Error processing path [" + actualPathConfig.getPath() + "].", e);
}
}
if (!challenge(actualPathConfig, requiredScopes, httpFacade)) {
LOGGER.debugf("Sending challenge to the client. Path [%s]", pathConfig);
response.sendError(403, "Authorization failed.");
}
}
}
return createEmptyAuthorizationContext(false);
}
protected abstract boolean challenge(PathConfig pathConfig, Set<String> requiredScopes, OIDCHttpFacade facade);
protected boolean isAuthorized(PathConfig actualPathConfig, Set<String> requiredScopes, AccessToken accessToken, OIDCHttpFacade httpFacade) {
Request request = httpFacade.getRequest();
PolicyEnforcerConfig enforcerConfig = getEnforcerConfig();
if (isDefaultAccessDeniedUri(request, enforcerConfig)) {
return true;
}
AccessToken.Authorization authorization = accessToken.getAuthorization();
if (authorization == null) {
return false;
}
List<Permission> permissions = authorization.getPermissions();
boolean hasPermission = false;
for (Permission permission : permissions) {
if (permission.getResourceSetId() != null) {
if (isResourcePermission(actualPathConfig, permission)) {
hasPermission = true;
if (actualPathConfig.isInstance() && !matchResourcePermission(actualPathConfig, permission)) {
continue;
}
if (hasResourceScopePermission(requiredScopes, permission, actualPathConfig)) {
LOGGER.debugf("Authorization GRANTED for path [%s]. Permissions [%s].", actualPathConfig, permissions);
if (request.getMethod().equalsIgnoreCase("DELETE") && actualPathConfig.isInstance()) {
this.paths.remove(actualPathConfig);
}
return true;
}
}
} else {
if (hasResourceScopePermission(requiredScopes, permission, actualPathConfig)) {
hasPermission = true;
return true;
}
}
}
if (!hasPermission && EnforcementMode.PERMISSIVE.equals(actualPathConfig.getEnforcementMode())) {
return true;
}
LOGGER.debugf("Authorization FAILED for path [%s]. No enough permissions [%s].", actualPathConfig, permissions);
return false;
}
private boolean isDefaultAccessDeniedUri(Request request, PolicyEnforcerConfig enforcerConfig) {
String accessDeniedPath = enforcerConfig.getOnDenyRedirectTo();
if (accessDeniedPath != null) {
if (request.getURI().contains(accessDeniedPath)) {
return true;
}
}
return false;
}
private boolean hasResourceScopePermission(Set<String> requiredScopes, Permission permission, PathConfig actualPathConfig) {
Set<String> allowedScopes = permission.getScopes();
return (allowedScopes.containsAll(requiredScopes) || allowedScopes.isEmpty());
}
protected AuthzClient getAuthzClient() {
return this.authzClient;
}
protected PolicyEnforcerConfig getEnforcerConfig() {
return enforcerConfig;
}
protected PolicyEnforcer getPolicyEnforcer() {
return policyEnforcer;
}
private AuthorizationContext createEmptyAuthorizationContext(final boolean granted) {
return new AuthorizationContext() {
@Override
public boolean hasPermission(String resourceName, String scopeName) {
return granted;
}
@Override
public boolean hasResourcePermission(String resourceName) {
return granted;
}
@Override
public boolean hasScopePermission(String scopeName) {
return granted;
}
@Override
public List<Permission> getPermissions() {
return Collections.EMPTY_LIST;
}
@Override
public boolean isGranted() {
return granted;
}
};
}
private PathConfig resolvePathConfig(PathConfig originalConfig, Request request) {
String path = getPath(request);
if (originalConfig.hasPattern()) {
ProtectedResource resource = this.authzClient.protection().resource();
Set<String> search = resource.findByFilter("uri=" + path);
if (!search.isEmpty()) {
// resource does exist on the server, cache it
ResourceRepresentation targetResource = resource.findById(search.iterator().next()).getResourceDescription();
PathConfig config = PolicyEnforcer.createPathConfig(targetResource);
config.setScopes(originalConfig.getScopes());
config.setMethods(originalConfig.getMethods());
config.setParentConfig(originalConfig);
config.setEnforcementMode(originalConfig.getEnforcementMode());
this.policyEnforcer.addPath(config);
return config;
}
}
return originalConfig;
}
private String getPath(Request request) {
return request.getRelativePath();
}
private Set<String> getRequiredScopes(PathConfig pathConfig, Request request) {
Set<String> requiredScopes = new HashSet<>();
requiredScopes.addAll(pathConfig.getScopes());
String method = request.getMethod();
for (PolicyEnforcerConfig.MethodConfig methodConfig : pathConfig.getMethods()) {
if (methodConfig.getMethod().equals(method)) {
requiredScopes.addAll(methodConfig.getScopes());
}
}
return requiredScopes;
}
private AuthorizationContext createAuthorizationContext(AccessToken accessToken) {
return new AuthorizationContext(accessToken, this.paths);
}
private boolean isResourcePermission(PathConfig actualPathConfig, Permission permission) {
// first we try a match using resource id
boolean resourceMatch = matchResourcePermission(actualPathConfig, permission);
// as a fallback, check if the current path is an instance and if so, check if parent's id matches the permission
if (!resourceMatch && actualPathConfig.isInstance()) {
resourceMatch = matchResourcePermission(actualPathConfig.getParentConfig(), permission);
}
return resourceMatch;
}
private boolean matchResourcePermission(PathConfig actualPathConfig, Permission permission) {
return permission.getResourceSetId().equals(actualPathConfig.getId());
}
}
@@ -0,0 +1,79 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.keycloak.adapters.authorization;
import org.jboss.logging.Logger;
import org.keycloak.adapters.OIDCHttpFacade;
import org.keycloak.adapters.spi.HttpFacade;
import org.keycloak.authorization.client.AuthzClient;
import org.keycloak.authorization.client.representation.PermissionRequest;
import org.keycloak.authorization.client.resource.PermissionResource;
import org.keycloak.authorization.client.resource.ProtectionResource;
import org.keycloak.representations.adapters.config.PolicyEnforcerConfig.PathConfig;
import java.util.Set;
/**
* @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
*/
public class BearerTokenPolicyEnforcer extends AbstractPolicyEnforcer {
private static Logger LOGGER = Logger.getLogger(BearerTokenPolicyEnforcer.class);
public BearerTokenPolicyEnforcer(PolicyEnforcer enforcer) {
super(enforcer);
}
@Override
protected boolean challenge(PathConfig pathConfig, Set<String> requiredScopes, OIDCHttpFacade facade) {
if (getEnforcerConfig().getUserManagedAccess() != null) {
challengeUmaAuthentication(pathConfig, requiredScopes, facade);
} else {
challengeEntitlementAuthentication(facade);
}
return true;
}
private void challengeEntitlementAuthentication(OIDCHttpFacade facade) {
HttpFacade.Response response = facade.getResponse();
AuthzClient authzClient = getAuthzClient();
String clientId = authzClient.getConfiguration().getClientId();
String authorizationServerUri = authzClient.getServerConfiguration().getIssuer().toString() + "/authz/entitlement";
response.setStatus(401);
response.setHeader("WWW-Authenticate", "KC_ETT realm=\"" + clientId + "\",as_uri=\"" + authorizationServerUri + "\"");
}
private void challengeUmaAuthentication(PathConfig pathConfig, Set<String> requiredScopes, OIDCHttpFacade facade) {
HttpFacade.Response response = facade.getResponse();
AuthzClient authzClient = getAuthzClient();
String ticket = getPermissionTicket(pathConfig, requiredScopes, authzClient);
String clientId = authzClient.getConfiguration().getClientId();
String authorizationServerUri = authzClient.getServerConfiguration().getIssuer().toString() + "/authz/authorize";
response.setStatus(401);
response.setHeader("WWW-Authenticate", "UMA realm=\"" + clientId + "\",as_uri=\"" + authorizationServerUri + "\",ticket=\"" + ticket + "\"");
}
private String getPermissionTicket(PathConfig pathConfig, Set<String> requiredScopes, AuthzClient authzClient) {
ProtectionResource protection = authzClient.protection();
PermissionResource permission = protection.permission();
PermissionRequest permissionRequest = new PermissionRequest();
permissionRequest.setResourceSetId(pathConfig.getId());
permissionRequest.setScopes(requiredScopes);
return permission.forResource(permissionRequest).getTicket();
}
}
@@ -0,0 +1,147 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.keycloak.adapters.authorization;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import org.jboss.logging.Logger;
import org.keycloak.adapters.KeycloakDeployment;
import org.keycloak.adapters.OIDCHttpFacade;
import org.keycloak.adapters.rotation.AdapterRSATokenVerifier;
import org.keycloak.adapters.spi.HttpFacade;
import org.keycloak.authorization.client.AuthorizationDeniedException;
import org.keycloak.authorization.client.AuthzClient;
import org.keycloak.authorization.client.representation.AuthorizationRequest;
import org.keycloak.authorization.client.representation.AuthorizationResponse;
import org.keycloak.authorization.client.representation.EntitlementRequest;
import org.keycloak.authorization.client.representation.EntitlementResponse;
import org.keycloak.authorization.client.representation.PermissionRequest;
import org.keycloak.authorization.client.representation.PermissionResponse;
import org.keycloak.representations.AccessToken;
import org.keycloak.representations.adapters.config.PolicyEnforcerConfig.PathConfig;
import org.keycloak.representations.idm.authorization.Permission;
/**
* @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
*/
public class KeycloakAdapterPolicyEnforcer extends AbstractPolicyEnforcer {
private static Logger LOGGER = Logger.getLogger(KeycloakAdapterPolicyEnforcer.class);
public KeycloakAdapterPolicyEnforcer(PolicyEnforcer policyEnforcer) {
super(policyEnforcer);
}
@Override
protected boolean isAuthorized(PathConfig pathConfig, Set<String> requiredScopes, AccessToken accessToken, OIDCHttpFacade httpFacade) {
AccessToken original = accessToken;
if (super.isAuthorized(pathConfig, requiredScopes, accessToken, httpFacade)) {
return true;
}
accessToken = requestAuthorizationToken(pathConfig, requiredScopes, httpFacade);
if (accessToken == null) {
return false;
}
AccessToken.Authorization authorization = original.getAuthorization();
if (authorization == null) {
authorization = new AccessToken.Authorization();
authorization.setPermissions(new ArrayList<Permission>());
}
AccessToken.Authorization newAuthorization = accessToken.getAuthorization();
if (newAuthorization != null) {
authorization.getPermissions().addAll(newAuthorization.getPermissions());
}
original.setAuthorization(authorization);
return super.isAuthorized(pathConfig, requiredScopes, accessToken, httpFacade);
}
@Override
protected boolean challenge(PathConfig pathConfig, Set<String> requiredScopes, OIDCHttpFacade facade) {
String accessDeniedPath = getEnforcerConfig().getOnDenyRedirectTo();
HttpFacade.Response response = facade.getResponse();
if (accessDeniedPath != null) {
response.setStatus(302);
response.setHeader("Location", accessDeniedPath);
} else {
response.sendError(403);
}
return true;
}
private AccessToken requestAuthorizationToken(PathConfig pathConfig, Set<String> requiredScopes, OIDCHttpFacade httpFacade) {
try {
String accessToken = httpFacade.getSecurityContext().getTokenString();
AuthzClient authzClient = getAuthzClient();
KeycloakDeployment deployment = getPolicyEnforcer().getDeployment();
if (getEnforcerConfig().getUserManagedAccess() != null) {
LOGGER.debug("Obtaining authorization for authenticated user.");
PermissionRequest permissionRequest = new PermissionRequest();
permissionRequest.setResourceSetId(pathConfig.getId());
permissionRequest.setScopes(requiredScopes);
PermissionResponse permissionResponse = authzClient.protection().permission().forResource(permissionRequest);
AuthorizationRequest authzRequest = new AuthorizationRequest(permissionResponse.getTicket());
AuthorizationResponse authzResponse = authzClient.authorization(accessToken).authorize(authzRequest);
if (authzResponse != null) {
return AdapterRSATokenVerifier.verifyToken(authzResponse.getRpt(), deployment);
}
return null;
} else {
LOGGER.debug("Obtaining entitlements for authenticated user.");
AccessToken token = httpFacade.getSecurityContext().getToken();
if (token.getAuthorization() == null) {
EntitlementResponse authzResponse = authzClient.entitlement(accessToken).getAll(authzClient.getConfiguration().getClientId());
return AdapterRSATokenVerifier.verifyToken(authzResponse.getRpt(), deployment);
} else {
EntitlementRequest request = new EntitlementRequest();
PermissionRequest permissionRequest = new PermissionRequest();
permissionRequest.setResourceSetId(pathConfig.getId());
permissionRequest.setResourceSetName(pathConfig.getName());
permissionRequest.setScopes(new HashSet<>(pathConfig.getScopes()));
LOGGER.debugf("Sending entitlements request: resource_set_id [%s], resource_set_name [%s], scopes [%s].", permissionRequest.getResourceSetId(), permissionRequest.getResourceSetName(), permissionRequest.getScopes());
request.addPermission(permissionRequest);
EntitlementResponse authzResponse = authzClient.entitlement(accessToken).get(authzClient.getConfiguration().getClientId(), request);
return AdapterRSATokenVerifier.verifyToken(authzResponse.getRpt(), deployment);
}
}
} catch (AuthorizationDeniedException e) {
LOGGER.debug("Authorization denied", e);
return null;
} catch (Exception e) {
throw new RuntimeException("Unexpected error during authorization request.", e);
}
}
}
@@ -0,0 +1,109 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.keycloak.adapters.authorization;
import org.keycloak.representations.adapters.config.PolicyEnforcerConfig.PathConfig;
import java.util.Map;
/**
* @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
*/
class PathMatcher {
private static final String ANY_RESOURCE_PATTERN = "/*";
PathConfig matches(final String requestedUri, Map<String, PathConfig> paths) {
PathConfig pathConfig = paths.get(requestedUri);
if (pathConfig != null) {
return pathConfig;
}
PathConfig actualConfig = null;
for (PathConfig entry : paths.values()) {
String protectedUri = entry.getPath();
String selectedUri = null;
if (protectedUri.equals(ANY_RESOURCE_PATTERN) && actualConfig == null) {
selectedUri = protectedUri;
}
int suffixIndex = protectedUri.indexOf(ANY_RESOURCE_PATTERN + ".");
if (suffixIndex != -1) {
String protectedSuffix = protectedUri.substring(suffixIndex + ANY_RESOURCE_PATTERN.length());
if (requestedUri.endsWith(protectedSuffix)) {
selectedUri = protectedUri;
}
}
if (protectedUri.equals(requestedUri)) {
selectedUri = protectedUri;
}
if (protectedUri.endsWith(ANY_RESOURCE_PATTERN)) {
String formattedPattern = removeWildCardsFromUri(protectedUri);
if (!formattedPattern.equals("/") && requestedUri.startsWith(formattedPattern)) {
selectedUri = protectedUri;
}
if (!formattedPattern.equals("/") && formattedPattern.endsWith("/") && formattedPattern.substring(0, formattedPattern.length() - 1).equals(requestedUri)) {
selectedUri = protectedUri;
}
}
int startRegex = protectedUri.indexOf('{');
if (startRegex != -1) {
String prefix = protectedUri.substring(0, startRegex);
if (requestedUri.startsWith(prefix)) {
selectedUri = protectedUri;
}
}
if (selectedUri != null) {
selectedUri = protectedUri;
}
if (selectedUri != null) {
if (actualConfig == null) {
actualConfig = entry;
} else {
if (actualConfig.equals(ANY_RESOURCE_PATTERN)) {
actualConfig = entry;
}
if (protectedUri.startsWith(removeWildCardsFromUri(actualConfig.getPath()))) {
actualConfig = entry;
}
}
}
}
return actualConfig;
}
private String removeWildCardsFromUri(String protectedUri) {
return protectedUri.replaceAll("/[*]", "/");
}
}
@@ -0,0 +1,234 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.keycloak.adapters.authorization;
import org.jboss.logging.Logger;
import org.keycloak.AuthorizationContext;
import org.keycloak.adapters.KeycloakDeployment;
import org.keycloak.adapters.OIDCHttpFacade;
import org.keycloak.authorization.client.AuthzClient;
import org.keycloak.authorization.client.Configuration;
import org.keycloak.authorization.client.representation.RegistrationResponse;
import org.keycloak.authorization.client.representation.ResourceRepresentation;
import org.keycloak.authorization.client.representation.ScopeRepresentation;
import org.keycloak.authorization.client.resource.ProtectedResource;
import org.keycloak.representations.adapters.config.AdapterConfig;
import org.keycloak.representations.adapters.config.PolicyEnforcerConfig;
import org.keycloak.representations.adapters.config.PolicyEnforcerConfig.PathConfig;
import org.keycloak.representations.idm.authorization.Permission;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
*/
public class PolicyEnforcer {
private static Logger LOGGER = Logger.getLogger(PolicyEnforcer.class);
private final KeycloakDeployment deployment;
private final AuthzClient authzClient;
private final PolicyEnforcerConfig enforcerConfig;
private final Map<String, PathConfig> paths;
public PolicyEnforcer(KeycloakDeployment deployment, AdapterConfig adapterConfig) {
this.deployment = deployment;
this.enforcerConfig = adapterConfig.getPolicyEnforcerConfig();
this.authzClient = AuthzClient.create(new Configuration(adapterConfig.getAuthServerUrl(), adapterConfig.getRealm(), adapterConfig.getResource(), adapterConfig.getCredentials(), deployment.getClient()));
this.paths = configurePaths(this.authzClient.protection().resource(), this.enforcerConfig);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("Initialization complete. Path configurations:");
for (PathConfig pathConfig : this.paths.values()) {
LOGGER.debug(pathConfig);
}
}
}
public AuthorizationContext enforce(OIDCHttpFacade facade) {
if (LOGGER.isDebugEnabled()) {
LOGGER.debugv("Policy enforcement is enable. Enforcing policy decisions for path [{0}].", facade.getRequest().getURI());
}
AuthorizationContext context;
if (deployment.isBearerOnly()) {
context = new BearerTokenPolicyEnforcer(this).authorize(facade);
} else {
context = new KeycloakAdapterPolicyEnforcer(this).authorize(facade);
}
if (LOGGER.isDebugEnabled()) {
LOGGER.debugv("Policy enforcement result for path [{0}] is : {1}", facade.getRequest().getURI(), context.isGranted() ? "GRANTED" : "DENIED");
LOGGER.debugv("Returning authorization context with permissions:");
for (Permission permission : context.getPermissions()) {
LOGGER.debug(permission);
}
}
return context;
}
PolicyEnforcerConfig getEnforcerConfig() {
return enforcerConfig;
}
AuthzClient getClient() {
return authzClient;
}
public Map<String, PathConfig> getPaths() {
return paths;
}
void addPath(PathConfig pathConfig) {
paths.put(pathConfig.getPath(), pathConfig);
}
KeycloakDeployment getDeployment() {
return deployment;
}
private Map<String, PathConfig> configurePaths(ProtectedResource protectedResource, PolicyEnforcerConfig enforcerConfig) {
boolean loadPathsFromServer = true;
for (PathConfig pathConfig : enforcerConfig.getPaths()) {
if (!PolicyEnforcerConfig.EnforcementMode.DISABLED.equals(pathConfig.getEnforcementMode())) {
loadPathsFromServer = false;
break;
}
}
if (loadPathsFromServer) {
LOGGER.info("No path provided in configuration.");
return configureAllPathsForResourceServer(protectedResource);
} else {
LOGGER.info("Paths provided in configuration.");
return configureDefinedPaths(protectedResource, enforcerConfig);
}
}
private Map<String, PathConfig> configureDefinedPaths(ProtectedResource protectedResource, PolicyEnforcerConfig enforcerConfig) {
Map<String, PathConfig> paths = Collections.synchronizedMap(new HashMap<String, PathConfig>());
for (PathConfig pathConfig : enforcerConfig.getPaths()) {
Set<String> search;
String resourceName = pathConfig.getName();
String path = pathConfig.getPath();
if (resourceName != null) {
LOGGER.debugf("Trying to find resource with name [%s] for path [%s].", resourceName, path);
search = protectedResource.findByFilter("name=" + resourceName);
} else {
LOGGER.debugf("Trying to find resource with uri [%s] for path [%s].", path, path);
search = protectedResource.findByFilter("uri=" + path);
}
if (search.isEmpty()) {
if (enforcerConfig.isCreateResources()) {
LOGGER.debugf("Creating resource on server for path [%s].", pathConfig);
ResourceRepresentation resource = new ResourceRepresentation();
resource.setName(resourceName);
resource.setType(pathConfig.getType());
resource.setUri(path);
HashSet<ScopeRepresentation> scopes = new HashSet<>();
for (String scopeName : pathConfig.getScopes()) {
ScopeRepresentation scope = new ScopeRepresentation();
scope.setName(scopeName);
scopes.add(scope);
}
resource.setScopes(scopes);
RegistrationResponse registrationResponse = protectedResource.create(resource);
pathConfig.setId(registrationResponse.getId());
} else {
throw new RuntimeException("Could not find matching resource on server with uri [" + path + "] or name [" + resourceName + "]. Make sure you have created a resource on the server that matches with the path configuration.");
}
} else {
pathConfig.setId(search.iterator().next());
}
PathConfig existingPath = null;
for (PathConfig current : paths.values()) {
if (current.getId().equals(pathConfig.getId()) && current.getPath().equals(pathConfig.getPath())) {
existingPath = current;
break;
}
}
if (existingPath == null) {
paths.put(pathConfig.getPath(), pathConfig);
} else {
existingPath.getMethods().addAll(pathConfig.getMethods());
existingPath.getScopes().addAll(pathConfig.getScopes());
}
}
return paths;
}
private Map<String, PathConfig> configureAllPathsForResourceServer(ProtectedResource protectedResource) {
LOGGER.info("Querying the server for all resources associated with this application.");
Map<String, PathConfig> paths = Collections.synchronizedMap(new HashMap<String, PathConfig>());
for (String id : protectedResource.findAll()) {
RegistrationResponse response = protectedResource.findById(id);
ResourceRepresentation resourceDescription = response.getResourceDescription();
if (resourceDescription.getUri() != null) {
PathConfig pathConfig = createPathConfig(resourceDescription);
paths.put(pathConfig.getPath(), pathConfig);
}
}
return paths;
}
static PathConfig createPathConfig(ResourceRepresentation resourceDescription) {
PathConfig pathConfig = new PathConfig();
pathConfig.setId(resourceDescription.getId());
pathConfig.setName(resourceDescription.getName());
pathConfig.setPath(resourceDescription.getUri());
List<String> scopeNames = new ArrayList<>();
for (ScopeRepresentation scope : resourceDescription.getScopes()) {
scopeNames.add(scope.getName());
}
pathConfig.setScopes(scopeNames);
pathConfig.setType(resourceDescription.getType());
return pathConfig;
}
}
@@ -1,13 +1,33 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.jaas;
import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.security.Principal;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import org.jboss.logging.Logger;
import org.keycloak.KeycloakPrincipal;
import org.keycloak.adapters.AdapterUtils;
import org.keycloak.adapters.KeycloakDeployment;
import org.keycloak.adapters.KeycloakDeploymentBuilder;
import org.keycloak.adapters.RefreshableKeycloakSecurityContext;
import org.keycloak.adapters.rotation.AdapterRSATokenVerifier;
import org.keycloak.common.VerificationException;
import org.keycloak.common.util.FindFile;
import org.keycloak.common.util.reflections.Reflections;
import org.keycloak.representations.AccessToken;
import javax.security.auth.Subject;
import javax.security.auth.callback.Callback;
@@ -17,19 +37,14 @@ import javax.security.auth.callback.PasswordCallback;
import javax.security.auth.callback.UnsupportedCallbackException;
import javax.security.auth.login.LoginException;
import javax.security.auth.spi.LoginModule;
import org.jboss.logging.Logger;
import org.keycloak.KeycloakPrincipal;
import org.keycloak.RSATokenVerifier;
import org.keycloak.common.VerificationException;
import org.keycloak.adapters.AdapterDeploymentContext;
import org.keycloak.adapters.AdapterUtils;
import org.keycloak.common.util.FindFile;
import org.keycloak.adapters.KeycloakDeployment;
import org.keycloak.adapters.KeycloakDeploymentBuilder;
import org.keycloak.adapters.RefreshableKeycloakSecurityContext;
import org.keycloak.representations.AccessToken;
import org.keycloak.common.util.reflections.Reflections;
import java.io.InputStream;
import java.lang.reflect.Constructor;
import java.security.Principal;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
@@ -71,9 +86,6 @@ public abstract class AbstractKeycloakLoginModule implements LoginModule {
try {
InputStream is = FindFile.findFile(keycloakConfigFile);
KeycloakDeployment kd = KeycloakDeploymentBuilder.build(is);
if (kd.getRealmKey() == null) {
new AdapterDeploymentContext().resolveRealmKey(kd);
}
return kd;
} catch (RuntimeException e) {
getLogger().debug("Unable to find or parse file " + keycloakConfigFile + " due to " + e.getMessage(), e);
@@ -173,7 +185,7 @@ public abstract class AbstractKeycloakLoginModule implements LoginModule {
protected Auth bearerAuth(String tokenString) throws VerificationException {
AccessToken token = RSATokenVerifier.verifyToken(tokenString, deployment.getRealmKey(), deployment.getRealmInfoUrl());
AccessToken token = AdapterRSATokenVerifier.verifyToken(tokenString, deployment);
boolean verifyCaller;
if (deployment.isUseResourceRoleMappings()) {
@@ -0,0 +1,45 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.jaas;
import org.jboss.logging.Logger;
import org.keycloak.common.VerificationException;
/**
* Login module, which allows to authenticate Keycloak access token in environments, which rely on JAAS
* <p/>
* It expects login based on username and password where username doesn't matter and password is keycloak access token.
*
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class BearerTokenLoginModule extends AbstractKeycloakLoginModule {
private static final Logger log = Logger.getLogger(BearerTokenLoginModule.class);
@Override
protected Auth doAuth(String username, String password) throws VerificationException {
// Should do some checking of authenticated username if it's equivalent to passed value?
return bearerAuth(password);
}
@Override
protected Logger getLogger() {
return log;
}
}
@@ -1,18 +1,22 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.jaas;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.net.URI;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.security.auth.Subject;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.login.LoginException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
@@ -22,12 +26,25 @@ import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.jboss.logging.Logger;
import org.keycloak.OAuth2Constants;
import org.keycloak.common.VerificationException;
import org.keycloak.adapters.authentication.ClientCredentialsProviderUtils;
import org.keycloak.common.VerificationException;
import org.keycloak.common.util.KeycloakUriBuilder;
import org.keycloak.constants.ServiceUrlConstants;
import org.keycloak.representations.AccessTokenResponse;
import org.keycloak.representations.idm.OAuth2ErrorRepresentation;
import org.keycloak.util.JsonSerialization;
import org.keycloak.common.util.KeycloakUriBuilder;
import javax.security.auth.Subject;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.login.LoginException;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.net.URI;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* Login module based on Resource Owner password credentials grant from OAuth2 specs. It's supposed to be used in environments. which
@@ -85,9 +102,9 @@ public class DirectAccessGrantsLoginModule extends AbstractKeycloakLoginModule {
StringBuilder errorBuilder = new StringBuilder("Login failed. Invalid status: " + status);
if (entity != null) {
InputStream is = entity.getContent();
Map<String, String> errors = (Map<String, String>) JsonSerialization.readValue(is, Map.class);
errorBuilder.append(", OAuth2 error. Error: " + errors.get(OAuth2Constants.ERROR))
.append(", Error description: " + errors.get(OAuth2Constants.ERROR_DESCRIPTION));
OAuth2ErrorRepresentation errorRep = JsonSerialization.readValue(is, OAuth2ErrorRepresentation.class);
errorBuilder.append(", OAuth2 error. Error: " + errorRep.getError())
.append(", Error description: " + errorRep.getErrorDescription());
}
String error = errorBuilder.toString();
log.warn(error);
@@ -144,9 +161,9 @@ public class DirectAccessGrantsLoginModule extends AbstractKeycloakLoginModule {
if (entity != null) {
InputStream is = entity.getContent();
if (status == 400) {
Map<String, String> errors = (Map<String, String>) JsonSerialization.readValue(is, Map.class);
errorBuilder.append(", OAuth2 error. Error: " + errors.get(OAuth2Constants.ERROR))
.append(", Error description: " + errors.get(OAuth2Constants.ERROR_DESCRIPTION));
OAuth2ErrorRepresentation errorRep = JsonSerialization.readValue(is, OAuth2ErrorRepresentation.class);
errorBuilder.append(", OAuth2 error. Error: " + errorRep.getError())
.append(", Error description: " + errorRep.getErrorDescription());
} else {
if (is != null) is.close();
@@ -0,0 +1,53 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.jaas;
import java.io.Serializable;
import java.security.Principal;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class RolePrincipal implements Principal, Serializable {
private String roleName = null;
public RolePrincipal(String roleName) {
this.roleName = roleName;
}
public boolean equals (Object p) {
if (! (p instanceof RolePrincipal))
return false;
return getName().equals(((RolePrincipal)p).getName());
}
public int hashCode () {
return getName().hashCode();
}
public String getName () {
return this.roleName;
}
public String toString ()
{
return getName();
}
}
@@ -0,0 +1,58 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.rotation;
import org.jboss.logging.Logger;
import org.keycloak.RSATokenVerifier;
import org.keycloak.adapters.KeycloakDeployment;
import org.keycloak.common.VerificationException;
import org.keycloak.jose.jws.JWSInput;
import org.keycloak.representations.AccessToken;
import java.security.PublicKey;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class AdapterRSATokenVerifier {
private static final Logger log = Logger.getLogger(AdapterRSATokenVerifier.class);
public static AccessToken verifyToken(String tokenString, KeycloakDeployment deployment) throws VerificationException {
return verifyToken(tokenString, deployment, true, true);
}
public static PublicKey getPublicKey(String kid, KeycloakDeployment deployment) throws VerificationException {
PublicKeyLocator pkLocator = deployment.getPublicKeyLocator();
PublicKey publicKey = pkLocator.getPublicKey(kid, deployment);
if (publicKey == null) {
log.errorf("Didn't find publicKey for kid: %s", kid);
throw new VerificationException("Didn't find publicKey for specified kid");
}
return publicKey;
}
public static AccessToken verifyToken(String tokenString, KeycloakDeployment deployment, boolean checkActive, boolean checkTokenType) throws VerificationException {
RSATokenVerifier verifier = RSATokenVerifier.create(tokenString).realmUrl(deployment.getRealmInfoUrl()).checkActive(checkActive).checkTokenType(checkTokenType);
PublicKey publicKey = getPublicKey(verifier.getHeader().getKeyId(), deployment);
return verifier.publicKey(publicKey).verify().getToken();
}
}
@@ -0,0 +1,45 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.rotation;
import org.keycloak.adapters.KeycloakDeployment;
import org.keycloak.jose.jws.JWSInput;
import java.security.PublicKey;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class HardcodedPublicKeyLocator implements PublicKeyLocator {
private PublicKey publicKey;
public HardcodedPublicKeyLocator(PublicKey publicKey) {
this.publicKey = publicKey;
}
@Override
public PublicKey getPublicKey(String kid, KeycloakDeployment deployment) {
return publicKey;
}
@Override
public void reset(KeycloakDeployment deployment) {
}
}
@@ -0,0 +1,115 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.rotation;
import org.apache.http.client.methods.HttpGet;
import org.jboss.logging.Logger;
import org.keycloak.adapters.HttpAdapterUtils;
import org.keycloak.adapters.HttpClientAdapterException;
import org.keycloak.adapters.KeycloakDeployment;
import org.keycloak.common.util.Time;
import org.keycloak.jose.jwk.JSONWebKeySet;
import org.keycloak.jose.jwk.JWK;
import org.keycloak.util.JWKSUtils;
import java.security.PublicKey;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* When needed, publicKeys are downloaded by sending request to realm's jwks_url
*
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class JWKPublicKeyLocator implements PublicKeyLocator {
private static final Logger log = Logger.getLogger(JWKPublicKeyLocator.class);
private Map<String, PublicKey> currentKeys = new ConcurrentHashMap<>();
private volatile int lastRequestTime = 0;
@Override
public PublicKey getPublicKey(String kid, KeycloakDeployment deployment) {
int minTimeBetweenRequests = deployment.getMinTimeBetweenJwksRequests();
int publicKeyCacheTtl = deployment.getPublicKeyCacheTtl();
int currentTime = Time.currentTime();
// Check if key is in cache.
PublicKey publicKey = lookupCachedKey(publicKeyCacheTtl, currentTime, kid);
if (publicKey != null) {
return publicKey;
}
// Check if we are allowed to send request
synchronized (this) {
currentTime = Time.currentTime();
if (currentTime > lastRequestTime + minTimeBetweenRequests) {
sendRequest(deployment);
lastRequestTime = currentTime;
} else {
log.debug("Won't send request to realm jwks url. Last request time was " + lastRequestTime);
}
return lookupCachedKey(publicKeyCacheTtl, currentTime, kid);
}
}
@Override
public void reset(KeycloakDeployment deployment) {
synchronized (this) {
sendRequest(deployment);
lastRequestTime = Time.currentTime();
}
}
private PublicKey lookupCachedKey(int publicKeyCacheTtl, int currentTime, String kid) {
if (lastRequestTime + publicKeyCacheTtl > currentTime) {
return currentKeys.get(kid);
} else {
return null;
}
}
private void sendRequest(KeycloakDeployment deployment) {
if (log.isTraceEnabled()) {
log.trace("Going to send request to retrieve new set of realm public keys for client " + deployment.getResourceName());
}
HttpGet getMethod = new HttpGet(deployment.getJwksUrl());
try {
JSONWebKeySet jwks = HttpAdapterUtils.sendJsonHttpRequest(deployment, getMethod, JSONWebKeySet.class);
Map<String, PublicKey> publicKeys = JWKSUtils.getKeysForUse(jwks, JWK.Use.SIG);
if (log.isDebugEnabled()) {
log.debug("Realm public keys successfully retrieved for client " + deployment.getResourceName() + ". New kids: " + publicKeys.keySet().toString());
}
// Update current keys
currentKeys.clear();
currentKeys.putAll(publicKeys);
} catch (HttpClientAdapterException e) {
log.error("Error when sending request to retrieve realm keys", e);
}
}
}
@@ -0,0 +1,44 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.rotation;
import org.keycloak.adapters.KeycloakDeployment;
import org.keycloak.jose.jws.JWSInput;
import java.security.PublicKey;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public interface PublicKeyLocator {
/**
* @param kid
* @param deployment
* @return publicKey, which should be used for verify signature on given "input"
*/
PublicKey getPublicKey(String kid, KeycloakDeployment deployment);
/**
* Reset the state of locator (eg. clear the cached keys)
*
* @param deployment
*/
void reset(KeycloakDeployment deployment);
}
@@ -0,0 +1,19 @@
#
# Copyright 2016 Red Hat, Inc. and/or its affiliates
# and other contributors as indicated by the @author tags.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
org.keycloak.adapters.authentication.ClientIdAndSecretCredentialsProvider
org.keycloak.adapters.authentication.JWTClientCredentialsProvider
@@ -0,0 +1,91 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.junit.Test;
import org.keycloak.adapters.authentication.ClientIdAndSecretCredentialsProvider;
import org.keycloak.adapters.authentication.JWTClientCredentialsProvider;
import org.keycloak.adapters.rotation.HardcodedPublicKeyLocator;
import org.keycloak.adapters.rotation.JWKPublicKeyLocator;
import org.keycloak.common.enums.RelativeUrlsUsed;
import org.keycloak.common.enums.SslRequired;
import org.keycloak.common.util.PemUtils;
import org.keycloak.enums.TokenStore;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
*/
public class KeycloakDeploymentBuilderTest {
@Test
public void load() throws Exception {
KeycloakDeployment deployment = KeycloakDeploymentBuilder.build(getClass().getResourceAsStream("/keycloak.json"));
assertEquals("demo", deployment.getRealm());
assertEquals("customer-portal", deployment.getResourceName());
assertTrue(deployment.getPublicKeyLocator() instanceof HardcodedPublicKeyLocator);
assertEquals(PemUtils.decodePublicKey("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrVrCuTtArbgaZzL1hvh0xtL5mc7o0NqPVnYXkLvgcwiC3BjLGw1tGEGoJaXDuSaRllobm53JBhjx33UNv+5z/UMG4kytBWxheNVKnL6GgqlNabMaFfPLPCF8kAgKnsi79NMo+n6KnSY8YeUmec/p2vjO2NjsSAVcWEQMVhJ31LwIDAQAB"),
deployment.getPublicKeyLocator().getPublicKey(null, deployment));
assertEquals("https://localhost:8443/auth/realms/demo/protocol/openid-connect/auth", deployment.getAuthUrl().build().toString());
assertEquals(SslRequired.EXTERNAL, deployment.getSslRequired());
assertTrue(deployment.isUseResourceRoleMappings());
assertTrue(deployment.isCors());
assertEquals(1000, deployment.getCorsMaxAge());
assertEquals("POST, PUT, DELETE, GET", deployment.getCorsAllowedMethods());
assertEquals("X-Custom, X-Custom2", deployment.getCorsAllowedHeaders());
assertTrue(deployment.isBearerOnly());
assertTrue(deployment.isPublicClient());
assertTrue(deployment.isEnableBasicAuth());
assertTrue(deployment.isExposeToken());
assertEquals("234234-234234-234234", deployment.getResourceCredentials().get("secret"));
assertEquals(ClientIdAndSecretCredentialsProvider.PROVIDER_ID, deployment.getClientAuthenticator().getId());
assertEquals(20, ((ThreadSafeClientConnManager) deployment.getClient().getConnectionManager()).getMaxTotal());
assertEquals("https://localhost:8443/auth/realms/demo/protocol/openid-connect/token", deployment.getTokenUrl());
assertEquals(RelativeUrlsUsed.NEVER, deployment.getRelativeUrls());
assertTrue(deployment.isAlwaysRefreshToken());
assertTrue(deployment.isRegisterNodeAtStartup());
assertEquals(1000, deployment.getRegisterNodePeriod());
assertEquals(TokenStore.COOKIE, deployment.getTokenStore());
assertEquals("email", deployment.getPrincipalAttribute());
assertEquals(10, deployment.getTokenMinimumTimeToLive());
assertEquals(20, deployment.getMinTimeBetweenJwksRequests());
assertEquals(120, deployment.getPublicKeyCacheTtl());
}
@Test
public void loadNoClientCredentials() throws Exception {
KeycloakDeployment deployment = KeycloakDeploymentBuilder.build(getClass().getResourceAsStream("/keycloak-no-credentials.json"));
assertEquals(ClientIdAndSecretCredentialsProvider.PROVIDER_ID, deployment.getClientAuthenticator().getId());
assertTrue(deployment.getPublicKeyLocator() instanceof JWKPublicKeyLocator);
assertEquals(10, deployment.getMinTimeBetweenJwksRequests());
assertEquals(86400, deployment.getPublicKeyCacheTtl());
}
@Test
public void loadJwtCredentials() throws Exception {
KeycloakDeployment deployment = KeycloakDeploymentBuilder.build(getClass().getResourceAsStream("/keycloak-jwt.json"));
assertEquals(JWTClientCredentialsProvider.PROVIDER_ID, deployment.getClientAuthenticator().getId());
}
}
@@ -0,0 +1,23 @@
package org.keycloak.adapters;
import org.junit.Test;
import org.keycloak.representations.oidc.TokenMetadataRepresentation;
import static org.junit.Assert.assertFalse;
/**
* @author github.com/tubbynl
*
*/
public class RefreshableKeycloakSecurityContextTest {
@Test
public void isActive() {
TokenMetadataRepresentation token = new TokenMetadataRepresentation();
token.setActive(true);
token.issuedNow();
RefreshableKeycloakSecurityContext sut = new RefreshableKeycloakSecurityContext(null,null,null,token,null, null, null);
// verify false if null deployment (KEYCLOAK-3050; yielded a npe)
assertFalse(sut.isActive());
}
}
@@ -0,0 +1,7 @@
{
"realm": "demo",
"resource": "customer-portal",
"auth-server-url": "https://localhost:8443/auth",
"public-client": true,
"expose-token": true
}
@@ -0,0 +1,35 @@
{
"realm": "demo",
"resource": "customer-portal",
"realm-public-key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrVrCuTtArbgaZzL1hvh0xtL5mc7o0NqPVnYXkLvgcwiC3BjLGw1tGEGoJaXDuSaRllobm53JBhjx33UNv+5z/UMG4kytBWxheNVKnL6GgqlNabMaFfPLPCF8kAgKnsi79NMo+n6KnSY8YeUmec/p2vjO2NjsSAVcWEQMVhJ31LwIDAQAB",
"auth-server-url": "https://localhost:8443/auth",
"ssl-required": "external",
"use-resource-role-mappings": true,
"enable-cors": true,
"cors-max-age": 1000,
"cors-allowed-methods": "POST, PUT, DELETE, GET",
"cors-allowed-headers": "X-Custom, X-Custom2",
"bearer-only": true,
"public-client": true,
"enable-basic-auth": true,
"expose-token": true,
"credentials": {
"secret": "234234-234234-234234"
},
"connection-pool-size": 20,
"disable-trust-manager": true,
"allow-any-hostname": true,
"truststore": "classpath:/cacerts.jks",
"truststore-password": "changeit",
"client-keystore": "classpath:/keystore.jks",
"client-keystore-password": "storepass",
"client-key-password": "keypass",
"always-refresh-token": true,
"register-node-at-startup": true,
"register-node-period": 1000,
"token-store": "cookie",
"principal-attribute": "email",
"token-minimum-time-to-live": 10,
"min-time-between-jwks-requests": 20,
"public-key-cache-ttl": 120
}
+102
View File
@@ -0,0 +1,102 @@
<?xml version="1.0"?>
<!--
~ Copyright 2016 Red Hat, Inc. and/or its affiliates
~ and other contributors as indicated by the @author tags.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>keycloak-as7-integration-pom</artifactId>
<groupId>org.keycloak</groupId>
<version>2.5.5.Final</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>keycloak-as7-adapter-spi</artifactId>
<name>Keycloak AS7 SPI</name>
<description/>
<dependencies>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.spec.javax.servlet</groupId>
<artifactId>jboss-servlet-api_3.0_spec</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>${jboss.logging.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.web</groupId>
<artifactId>jbossweb</artifactId>
<version>7.0.17.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-web</artifactId>
<version>7.1.2.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-tomcat-adapter-spi</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>catalina</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
@@ -1,3 +1,20 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.jbossweb;
import org.apache.catalina.Realm;
@@ -125,7 +142,7 @@ public class JBossWebPrincipalFactory extends GenericPrincipalFactory {
Iterator<Principal> iter = principals.iterator();
while (iter.hasNext()) {
Object next = iter.next();
if ((next instanceof Group) == false)
if (!(next instanceof Group))
continue;
Group grp = (Group) next;
if (grp.getName().equals(name)) {
@@ -0,0 +1,46 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.jbossweb;
import org.apache.catalina.Realm;
import org.junit.Assert;
import org.junit.Test;
import javax.security.auth.Subject;
import java.lang.reflect.Constructor;
import java.security.Principal;
import java.util.List;
/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
*/
public class JBossWebPrincipalFactoryTest {
@Test
public void test() {
Constructor constructor = JBossWebPrincipalFactory.findJBossGenericPrincipalConstructor();
Assert.assertNotNull(constructor);
Assert.assertEquals(Realm.class, constructor.getParameterTypes()[0]);
Assert.assertEquals(String.class, constructor.getParameterTypes()[1]);
Assert.assertEquals(List.class, constructor.getParameterTypes()[3]);
Assert.assertEquals(Principal.class, constructor.getParameterTypes()[4]);
Assert.assertEquals(Object.class, constructor.getParameterTypes()[6]);
Assert.assertEquals(Subject.class, constructor.getParameterTypes()[8]);
}
}
+134
View File
@@ -0,0 +1,134 @@
<?xml version="1.0"?>
<!--
~ Copyright 2016 Red Hat, Inc. and/or its affiliates
~ and other contributors as indicated by the @author tags.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>keycloak-as7-integration-pom</artifactId>
<groupId>org.keycloak</groupId>
<version>2.5.5.Final</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>keycloak-as7-adapter</artifactId>
<name>Keycloak AS7 Integration</name>
<description/>
<dependencies>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-core</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-as7-adapter-spi</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-core</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-jboss-adapter-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.spec.javax.servlet</groupId>
<artifactId>jboss-servlet-api_3.0_spec</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>${jboss.logging.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.web</groupId>
<artifactId>jbossweb</artifactId>
<version>7.0.17.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-web</artifactId>
<version>7.1.2.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-tomcat-core-adapter</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>catalina</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,68 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.jbossweb;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.connector.Request;
import org.apache.catalina.connector.Response;
import org.apache.catalina.core.StandardContext;
import org.apache.catalina.deploy.LoginConfig;
import org.keycloak.adapters.tomcat.AbstractKeycloakAuthenticatorValve;
import org.keycloak.adapters.tomcat.GenericPrincipalFactory;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Keycloak authentication valve
*
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public class KeycloakAuthenticatorValve extends AbstractKeycloakAuthenticatorValve {
public boolean authenticate(Request request, HttpServletResponse response, LoginConfig config) throws java.io.IOException {
return authenticateInternal(request, response, config);
}
@Override
protected boolean forwardToErrorPageInternal(Request request, HttpServletResponse response, Object loginConfig) throws IOException {
if (loginConfig == null) return false;
LoginConfig config = (LoginConfig)loginConfig;
if (config.getErrorPage() == null) return false;
forwardToErrorPage(request, (Response)response, config);
return true;
}
@Override
public void start() throws LifecycleException {
StandardContext standardContext = (StandardContext) context;
standardContext.addLifecycleListener(this);
super.start();
}
public void logout(Request request) {
logoutInternal(request);
}
@Override
protected GenericPrincipalFactory createPrincipalFactory() {
return new JBossWebPrincipalFactory();
}
}
+116
View File
@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright 2016 Red Hat, Inc. and/or its affiliates
~ and other contributors as indicated by the @author tags.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-as7-integration-pom</artifactId>
<version>2.5.5.Final</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>keycloak-as7-subsystem</artifactId>
<name>Keycloak AS7 Subsystem</name>
<description/>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.8.1</version>
<configuration>
<redirectTestOutputToFile>false</redirectTestOutputToFile>
<enableAssertions>true</enableAssertions>
<argLine>-Xmx512m</argLine>
<systemProperties>
<property>
<name>jboss.home</name>
<value>${jboss.home}</value>
</property>
</systemProperties>
<includes>
<include>**/*TestCase.java</include>
</includes>
<forkMode>once</forkMode>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-as7-adapter</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-naming</artifactId>
<version>${jboss.as.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-server</artifactId>
<version>${jboss.as.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-ee</artifactId>
<version>${jboss.as.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-web</artifactId>
<version>${jboss.as.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>3.1.0.GA</version>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging-processor</artifactId>
<!-- This is a compile-time dependency of this project, but is not needed at compile or runtime by other
projects that depend on this project.-->
<scope>provided</scope>
<optional>true</optional>
<version>1.0.0.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.msc</groupId>
<artifactId>jboss-msc</artifactId>
<version>1.0.2.GA</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,62 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.AbstractAddStepHandler;
import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.ServiceVerificationHandler;
import org.jboss.dmr.ModelNode;
import org.jboss.msc.service.ServiceController;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
/**
* Add a credential to a deployment.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2014 Red Hat Inc.
*/
public class CredentialAddHandler extends AbstractAddStepHandler {
protected Collection<AttributeDefinition> attributes = new LinkedList<>();
public CredentialAddHandler(AttributeDefinition... attrs) {
for (AttributeDefinition attr : attrs) {
attributes.add(attr);
}
}
@Override
protected void populateModel(ModelNode operation, ModelNode model) throws OperationFailedException {
if (attributes != null) {
for (AttributeDefinition attr : attributes) {
attr.validateAndSet(operation, model);
}
}
}
@Override
protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model, ServiceVerificationHandler verificationHandler, List<ServiceController<?>> newControllers) throws OperationFailedException {
KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance();
ckService.addCredential(operation, context.resolveExpressions(model));
}
}
@@ -0,0 +1,63 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.SimpleAttributeDefinitionBuilder;
import org.jboss.as.controller.SimpleResourceDefinition;
import org.jboss.as.controller.descriptions.ModelDescriptionConstants;
import org.jboss.as.controller.operations.common.GenericSubsystemDescribeHandler;
import org.jboss.as.controller.operations.validation.StringLengthValidator;
import org.jboss.as.controller.registry.ManagementResourceRegistration;
import org.jboss.as.controller.registry.OperationEntry;
import org.jboss.dmr.ModelType;
/**
* Defines attributes and operations for a credential.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
public class CredentialDefinition extends SimpleResourceDefinition {
public static final String TAG_NAME = "credential";
protected static final AttributeDefinition VALUE =
new SimpleAttributeDefinitionBuilder("value", ModelType.STRING, false)
.setAllowExpression(true)
.setValidator(new StringLengthValidator(1, Integer.MAX_VALUE, false, true))
.build();
public CredentialDefinition() {
super(PathElement.pathElement(TAG_NAME),
KeycloakExtension.getResourceDescriptionResolver(TAG_NAME),
new CredentialAddHandler(VALUE),
CredentialRemoveHandler.INSTANCE);
}
@Override
public void registerOperations(ManagementResourceRegistration resourceRegistration) {
super.registerOperations(resourceRegistration);
resourceRegistration.registerOperationHandler(ModelDescriptionConstants.DESCRIBE, GenericSubsystemDescribeHandler.INSTANCE, GenericSubsystemDescribeHandler.INSTANCE, false, OperationEntry.EntryType.PRIVATE);
}
@Override
public void registerAttributes(ManagementResourceRegistration resourceRegistration) {
super.registerAttributes(resourceRegistration);
resourceRegistration.registerReadWriteAttribute(VALUE, null, new CredentialReadWriteAttributeHandler());
}
}
@@ -0,0 +1,50 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.AbstractWriteAttributeHandler;
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.dmr.ModelNode;
/**
* Update a credential value.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2014 Red Hat Inc.
*/
public class CredentialReadWriteAttributeHandler extends AbstractWriteAttributeHandler<KeycloakAdapterConfigService> {
@Override
protected boolean applyUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName,
ModelNode resolvedValue, ModelNode currentValue, AbstractWriteAttributeHandler.HandbackHolder<KeycloakAdapterConfigService> hh) throws OperationFailedException {
KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance();
ckService.updateCredential(operation, attributeName, resolvedValue);
hh.setHandback(ckService);
return false;
}
@Override
protected void revertUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName,
ModelNode valueToRestore, ModelNode valueToRevert, KeycloakAdapterConfigService ckService) throws OperationFailedException {
ckService.updateCredential(operation, attributeName, valueToRestore);
}
}
@@ -0,0 +1,42 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.AbstractRemoveStepHandler;
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.dmr.ModelNode;
/**
* Remove a credential from a deployment.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2014 Red Hat Inc.
*/
public final class CredentialRemoveHandler extends AbstractRemoveStepHandler {
public static CredentialRemoveHandler INSTANCE = new CredentialRemoveHandler();
private CredentialRemoveHandler() {}
@Override
protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException {
KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance();
ckService.removeCredential(operation);
}
}
@@ -0,0 +1,129 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.server.deployment.DeploymentPhaseContext;
import org.jboss.as.server.deployment.DeploymentUnit;
import org.jboss.as.server.deployment.DeploymentUnitProcessingException;
import org.jboss.as.server.deployment.DeploymentUnitProcessor;
import org.jboss.as.web.deployment.WarMetaData;
import org.jboss.logging.Logger;
import org.jboss.metadata.javaee.spec.ParamValueMetaData;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
import org.jboss.metadata.web.jboss.ValveMetaData;
import org.jboss.metadata.web.spec.LoginConfigMetaData;
import org.keycloak.adapters.jbossweb.KeycloakAuthenticatorValve;
import org.keycloak.subsystem.as7.logging.KeycloakLogger;
import java.util.ArrayList;
import java.util.List;
/**
* Pass authentication data (keycloak.json) as a servlet context param so it can be read by the KeycloakServletExtension.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2014 Red Hat Inc.
*/
public class KeycloakAdapterConfigDeploymentProcessor implements DeploymentUnitProcessor {
protected Logger log = Logger.getLogger(KeycloakAdapterConfigDeploymentProcessor.class);
// This param name is defined again in Keycloak Undertow Integration class
// org.keycloak.adapters.undertow.KeycloakServletExtension. We have this value in
// two places to avoid dependency between Keycloak Subsystem and Keyclaok Undertow Integration.
public static final String AUTH_DATA_PARAM_NAME = "org.keycloak.json.adapterConfig";
@Override
public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException {
DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit();
// if it's not a web-app there's nothing to secure
WarMetaData warMetaData = deploymentUnit.getAttachment(WarMetaData.ATTACHMENT_KEY);
if (warMetaData == null) {
return;
}
JBossWebMetaData webMetaData = warMetaData.getMergedJBossWebMetaData();
if (webMetaData == null) {
webMetaData = new JBossWebMetaData();
warMetaData.setMergedJBossWebMetaData(webMetaData);
}
KeycloakAdapterConfigService service = KeycloakAdapterConfigService.getInstance();
// otherwise
LoginConfigMetaData loginConfig = webMetaData.getLoginConfig();
boolean hasSubsystemConfig = service.isSecureDeployment(deploymentUnit);
boolean webRequiresKC = loginConfig != null && "KEYCLOAK".equalsIgnoreCase(loginConfig.getAuthMethod());
boolean isConfigured = service.isDeploymentConfigured(deploymentUnit);
if ((hasSubsystemConfig && isConfigured) || webRequiresKC) {
log.debug("Setting up KEYCLOAK auth method for WAR: " + deploymentUnit.getName());
// if secure-deployment configuration exists for web app, we force KEYCLOAK auth method on it
if (hasSubsystemConfig) {
addJSONData(service.getJSON(deploymentUnit), warMetaData);
if (loginConfig != null) {
loginConfig.setAuthMethod("KEYCLOAK");
loginConfig.setRealmName(service.getRealmName(deploymentUnit));
} else {
log.warn("Failed to set up KEYCLOAK auth method for WAR: " + deploymentUnit.getName() + " (loginConfig == null)");
}
}
addValve(webMetaData);
KeycloakLogger.ROOT_LOGGER.deploymentSecured(deploymentUnit.getName());
}
}
private void addValve(JBossWebMetaData webMetaData) {
List<ValveMetaData> valves = webMetaData.getValves();
if (valves == null) {
valves = new ArrayList<ValveMetaData>(1);
webMetaData.setValves(valves);
}
ValveMetaData valve = new ValveMetaData();
valve.setValveClass(KeycloakAuthenticatorValve.class.getName());
valve.setModule("org.keycloak.keycloak-as7-adapter");
//log.info("******* adding Keycloak valve to: " + deploymentName);
valves.add(valve);
}
private void addJSONData(String json, WarMetaData warMetaData) {
JBossWebMetaData webMetaData = warMetaData.getMergedJBossWebMetaData();
if (webMetaData == null) {
webMetaData = new JBossWebMetaData();
warMetaData.setMergedJBossWebMetaData(webMetaData);
}
List<ParamValueMetaData> contextParams = webMetaData.getContextParams();
if (contextParams == null) {
contextParams = new ArrayList<ParamValueMetaData>();
}
ParamValueMetaData param = new ParamValueMetaData();
param.setParamName(AUTH_DATA_PARAM_NAME);
param.setParamValue(json);
contextParams.add(param);
webMetaData.setContextParams(contextParams);
}
@Override
public void undeploy(DeploymentUnit du) {
}
}
@@ -0,0 +1,231 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.server.deployment.DeploymentUnit;
import org.jboss.as.web.deployment.WarMetaData;
import org.jboss.dmr.ModelNode;
import org.jboss.dmr.Property;
import org.jboss.logging.Logger;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
import java.util.HashMap;
import java.util.Map;
import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.ADDRESS;
/**
* This service keeps track of the entire Keycloak management model so as to provide
* adapter configuration to each deployment at deploy time.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
public final class KeycloakAdapterConfigService {
protected Logger log = Logger.getLogger(KeycloakAdapterConfigService.class);
private static final String CREDENTIALS_JSON_NAME = "credentials";
private static final KeycloakAdapterConfigService INSTANCE = new KeycloakAdapterConfigService();
public static KeycloakAdapterConfigService getInstance() {
return INSTANCE;
}
private final Map<String, ModelNode> realms = new HashMap<String, ModelNode>();
// keycloak-secured deployments
private final Map<String, ModelNode> secureDeployments = new HashMap<String, ModelNode>();
private KeycloakAdapterConfigService() {
}
public void addRealm(ModelNode operation, ModelNode model) {
this.realms.put(realmNameFromOp(operation), model.clone());
}
public void updateRealm(ModelNode operation, String attrName, ModelNode resolvedValue) {
ModelNode realm = this.realms.get(realmNameFromOp(operation));
realm.get(attrName).set(resolvedValue);
}
public void removeRealm(ModelNode operation) {
this.realms.remove(realmNameFromOp(operation));
}
public void addSecureDeployment(ModelNode operation, ModelNode model) {
ModelNode deployment = model.clone();
this.secureDeployments.put(deploymentNameFromOp(operation), deployment);
}
public void updateSecureDeployment(ModelNode operation, String attrName, ModelNode resolvedValue) {
ModelNode deployment = this.secureDeployments.get(deploymentNameFromOp(operation));
deployment.get(attrName).set(resolvedValue);
}
public void removeSecureDeployment(ModelNode operation) {
this.secureDeployments.remove(deploymentNameFromOp(operation));
}
public void addCredential(ModelNode operation, ModelNode model) {
ModelNode credentials = credentialsFromOp(operation);
if (!credentials.isDefined()) {
credentials = new ModelNode();
}
String credentialName = credentialNameFromOp(operation);
if (!credentialName.contains(".")) {
credentials.get(credentialName).set(model.get("value").asString());
} else {
String[] parts = credentialName.split("\\.");
String provider = parts[0];
String property = parts[1];
ModelNode credential = credentials.get(provider);
if (!credential.isDefined()) {
credential = new ModelNode();
}
credential.get(property).set(model.get("value").asString());
credentials.set(provider, credential);
}
ModelNode deployment = this.secureDeployments.get(deploymentNameFromOp(operation));
deployment.get(CREDENTIALS_JSON_NAME).set(credentials);
}
public void removeCredential(ModelNode operation) {
ModelNode credentials = credentialsFromOp(operation);
if (!credentials.isDefined()) {
throw new RuntimeException("Can not remove credential. No credential defined for deployment in op " + operation.toString());
}
String credentialName = credentialNameFromOp(operation);
credentials.remove(credentialName);
}
public void updateCredential(ModelNode operation, String attrName, ModelNode resolvedValue) {
ModelNode credentials = credentialsFromOp(operation);
if (!credentials.isDefined()) {
throw new RuntimeException("Can not update credential. No credential defined for deployment in op " + operation.toString());
}
String credentialName = credentialNameFromOp(operation);
credentials.get(credentialName).set(resolvedValue);
}
private ModelNode credentialsFromOp(ModelNode operation) {
ModelNode deployment = this.secureDeployments.get(deploymentNameFromOp(operation));
return deployment.get(CREDENTIALS_JSON_NAME);
}
private String realmNameFromOp(ModelNode operation) {
return valueFromOpAddress(RealmDefinition.TAG_NAME, operation);
}
private String deploymentNameFromOp(ModelNode operation) {
return valueFromOpAddress(SecureDeploymentDefinition.TAG_NAME, operation);
}
private String credentialNameFromOp(ModelNode operation) {
return valueFromOpAddress(CredentialDefinition.TAG_NAME, operation);
}
private String valueFromOpAddress(String addrElement, ModelNode operation) {
String deploymentName = getValueOfAddrElement(operation.get(ADDRESS), addrElement);
if (deploymentName == null) throw new RuntimeException("Can't find '" + addrElement + "' in address " + operation.toString());
return deploymentName;
}
private String getValueOfAddrElement(ModelNode address, String elementName) {
for (ModelNode element : address.asList()) {
if (element.has(elementName)) return element.get(elementName).asString();
}
return null;
}
public String getRealmName(DeploymentUnit deploymentUnit) {
ModelNode deployment = getSecureDeployment(deploymentUnit);
return deployment.get(RealmDefinition.TAG_NAME).asString();
}
protected boolean isDeploymentConfigured(DeploymentUnit deploymentUnit) {
ModelNode deployment = getSecureDeployment(deploymentUnit);
if (! deployment.isDefined()) {
return false;
}
ModelNode resource = deployment.get(SecureDeploymentDefinition.RESOURCE.getName());
return resource.isDefined();
}
public String getJSON(DeploymentUnit deploymentUnit) {
ModelNode deployment = getSecureDeployment(deploymentUnit);
String realmName = deployment.get(RealmDefinition.TAG_NAME).asString();
ModelNode realm = this.realms.get(realmName);
ModelNode json = new ModelNode();
json.get(RealmDefinition.TAG_NAME).set(realmName);
// Realm values set first. Some can be overridden by deployment values.
if (realm != null) setJSONValues(json, realm);
setJSONValues(json, deployment);
return json.toJSONString(true);
}
private void setJSONValues(ModelNode json, ModelNode values) {
for (Property prop : values.asPropertyList()) {
String name = prop.getName();
ModelNode value = prop.getValue();
if (value.isDefined()) {
json.get(name).set(value);
}
}
}
public boolean isSecureDeployment(DeploymentUnit deploymentUnit) {
//log.info("********* CHECK KEYCLOAK DEPLOYMENT: deployments.size()" + deployments.size());
String deploymentName = preferredDeploymentName(deploymentUnit);
return this.secureDeployments.containsKey(deploymentName);
}
private ModelNode getSecureDeployment(DeploymentUnit deploymentUnit) {
String deploymentName = preferredDeploymentName(deploymentUnit);
return this.secureDeployments.containsKey(deploymentName)
? this.secureDeployments.get(deploymentName)
: new ModelNode();
}
// KEYCLOAK-3273: prefer module name if available
private String preferredDeploymentName(DeploymentUnit deploymentUnit) {
String deploymentName = deploymentUnit.getName();
WarMetaData warMetaData = deploymentUnit.getAttachment(WarMetaData.ATTACHMENT_KEY);
if (warMetaData == null) {
return deploymentName;
}
JBossWebMetaData webMetaData = warMetaData.getMergedJBossWebMetaData();
if (webMetaData == null) {
return deploymentName;
}
String moduleName = webMetaData.getModuleName();
if (moduleName != null) return moduleName + ".war";
return deploymentName;
}
}
@@ -0,0 +1,85 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.server.deployment.Attachments;
import org.jboss.as.server.deployment.DeploymentPhaseContext;
import org.jboss.as.server.deployment.DeploymentUnit;
import org.jboss.as.server.deployment.DeploymentUnitProcessingException;
import org.jboss.as.server.deployment.DeploymentUnitProcessor;
import org.jboss.as.server.deployment.module.ModuleDependency;
import org.jboss.as.server.deployment.module.ModuleSpecification;
import org.jboss.as.web.deployment.WarMetaData;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
import org.jboss.metadata.web.spec.LoginConfigMetaData;
import org.jboss.modules.Module;
import org.jboss.modules.ModuleIdentifier;
import org.jboss.modules.ModuleLoader;
/**
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
public abstract class KeycloakDependencyProcessor implements DeploymentUnitProcessor {
private static final ModuleIdentifier KEYCLOAK_JBOSS_CORE_ADAPTER = ModuleIdentifier.create("org.keycloak.keycloak-jboss-adapter-core");
private static final ModuleIdentifier KEYCLOAK_CORE_ADAPTER = ModuleIdentifier.create("org.keycloak.keycloak-adapter-core");
private static final ModuleIdentifier KEYCLOAK_CORE = ModuleIdentifier.create("org.keycloak.keycloak-core");
private static final ModuleIdentifier KEYCLOAK_COMMON = ModuleIdentifier.create("org.keycloak.keycloak-common");
@Override
public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException {
final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit();
if (!KeycloakAdapterConfigService.getInstance().isSecureDeployment(deploymentUnit)) {
WarMetaData warMetaData = deploymentUnit.getAttachment(WarMetaData.ATTACHMENT_KEY);
if (warMetaData == null) {
return;
}
JBossWebMetaData webMetaData = warMetaData.getMergedJBossWebMetaData();
if (webMetaData == null) {
return;
}
LoginConfigMetaData loginConfig = webMetaData.getLoginConfig();
if (loginConfig == null) return;
if (loginConfig.getAuthMethod() == null) return;
if (!loginConfig.getAuthMethod().equals("KEYCLOAK")) return;
}
final ModuleSpecification moduleSpecification = deploymentUnit.getAttachment(Attachments.MODULE_SPECIFICATION);
final ModuleLoader moduleLoader = Module.getBootModuleLoader();
addCommonModules(moduleSpecification, moduleLoader);
addPlatformSpecificModules(moduleSpecification, moduleLoader);
}
private void addCommonModules(ModuleSpecification moduleSpecification, ModuleLoader moduleLoader) {
// ModuleDependency(ModuleLoader moduleLoader, ModuleIdentifier identifier, boolean optional, boolean export, boolean importServices, boolean userSpecified)
moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_JBOSS_CORE_ADAPTER, false, false, false, false));
moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_CORE_ADAPTER, false, false, false, false));
moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_CORE, false, false, false, false));
moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_COMMON, false, false, false, false));
}
abstract protected void addPlatformSpecificModules(ModuleSpecification moduleSpecification, ModuleLoader moduleLoader);
@Override
public void undeploy(DeploymentUnit du) {
}
}
@@ -0,0 +1,36 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.server.deployment.module.ModuleDependency;
import org.jboss.as.server.deployment.module.ModuleSpecification;
import org.jboss.modules.ModuleIdentifier;
import org.jboss.modules.ModuleLoader;
/**
* @author <a href="mailto:marko.strukelj@gmail.com">Marko Strukelj</a>
*/
public class KeycloakDependencyProcessorAS7 extends KeycloakDependencyProcessor {
private static final ModuleIdentifier KEYCLOAK_AS7_ADAPTER = ModuleIdentifier.create("org.keycloak.keycloak-as7-adapter");
@Override
protected void addPlatformSpecificModules(ModuleSpecification moduleSpecification, ModuleLoader moduleLoader) {
// ModuleDependency(ModuleLoader moduleLoader, ModuleIdentifier identifier, boolean optional, boolean export, boolean importServices, boolean userSpecified)
moduleSpecification.addSystemDependency(new ModuleDependency(moduleLoader, KEYCLOAK_AS7_ADAPTER, false, false, true, false));
}}
@@ -0,0 +1,84 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.Extension;
import org.jboss.as.controller.ExtensionContext;
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.ResourceDefinition;
import org.jboss.as.controller.SubsystemRegistration;
import org.jboss.as.controller.descriptions.StandardResourceDescriptionResolver;
import org.jboss.as.controller.parsing.ExtensionParsingContext;
import org.jboss.as.controller.registry.ManagementResourceRegistration;
import org.keycloak.subsystem.as7.logging.KeycloakLogger;
import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.SUBSYSTEM;
/**
* Main Extension class for the subsystem.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
public class KeycloakExtension implements Extension {
public static final String SUBSYSTEM_NAME = "keycloak";
public static final String NAMESPACE = "urn:jboss:domain:keycloak:1.1";
private static final KeycloakSubsystemParser PARSER = new KeycloakSubsystemParser();
static final PathElement PATH_SUBSYSTEM = PathElement.pathElement(SUBSYSTEM, SUBSYSTEM_NAME);
private static final String RESOURCE_NAME = KeycloakExtension.class.getPackage().getName() + ".LocalDescriptions";
private static final int MGMT_API_VERSION_MAJOR = 1;
private static final int MGMT_API_VERSION_MINOR = 1;
static final PathElement SUBSYSTEM_PATH = PathElement.pathElement(SUBSYSTEM, SUBSYSTEM_NAME);
private static final ResourceDefinition KEYCLOAK_SUBSYSTEM_RESOURCE = new KeycloakSubsystemDefinition();
static final RealmDefinition REALM_DEFINITION = new RealmDefinition();
static final SecureDeploymentDefinition SECURE_DEPLOYMENT_DEFINITION = new SecureDeploymentDefinition();
static final CredentialDefinition CREDENTIAL_DEFINITION = new CredentialDefinition();
public static StandardResourceDescriptionResolver getResourceDescriptionResolver(final String... keyPrefix) {
StringBuilder prefix = new StringBuilder(SUBSYSTEM_NAME);
for (String kp : keyPrefix) {
prefix.append('.').append(kp);
}
return new StandardResourceDescriptionResolver(prefix.toString(), RESOURCE_NAME, KeycloakExtension.class.getClassLoader(), true, false);
}
/**
* {@inheritDoc}
*/
@Override
public void initializeParsers(final ExtensionParsingContext context) {
context.setSubsystemXmlMapping(SUBSYSTEM_NAME, KeycloakExtension.NAMESPACE, PARSER);
}
/**
* {@inheritDoc}
*/
@Override
public void initialize(final ExtensionContext context) {
KeycloakLogger.ROOT_LOGGER.debug("Activating Keycloak Extension");
final SubsystemRegistration subsystem = context.registerSubsystem(SUBSYSTEM_NAME, MGMT_API_VERSION_MAJOR, MGMT_API_VERSION_MINOR);
ManagementResourceRegistration registration = subsystem.registerSubsystemModel(KEYCLOAK_SUBSYSTEM_RESOURCE);
registration.registerSubModel(REALM_DEFINITION);
ManagementResourceRegistration secureDeploymentRegistration = registration.registerSubModel(SECURE_DEPLOYMENT_DEFINITION);
secureDeploymentRegistration.registerSubModel(CREDENTIAL_DEFINITION);
subsystem.registerXMLElementWriter(PARSER);
}
}
@@ -0,0 +1,59 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.AbstractBoottimeAddStepHandler;
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.ServiceVerificationHandler;
import org.jboss.as.server.AbstractDeploymentChainStep;
import org.jboss.as.server.DeploymentProcessorTarget;
import org.jboss.as.server.deployment.Phase;
import org.jboss.dmr.ModelNode;
import org.jboss.msc.service.ServiceController;
import java.util.List;
/**
* The Keycloak subsystem add update handler.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
class KeycloakSubsystemAdd extends AbstractBoottimeAddStepHandler {
static final KeycloakSubsystemAdd INSTANCE = new KeycloakSubsystemAdd();
@Override
protected void performBoottime(final OperationContext context, ModelNode operation, final ModelNode model, ServiceVerificationHandler verificationHandler, List<ServiceController<?>> newControllers) {
context.addStep(new AbstractDeploymentChainStep() {
@Override
protected void execute(DeploymentProcessorTarget processorTarget) {
processorTarget.addDeploymentProcessor(Phase.DEPENDENCIES, 0, new KeycloakDependencyProcessorAS7());
processorTarget.addDeploymentProcessor(
Phase.POST_MODULE, // PHASE
Phase.POST_MODULE_VALIDATOR_FACTORY - 1, // PRIORITY
new KeycloakAdapterConfigDeploymentProcessor());
}
}, OperationContext.Stage.RUNTIME);
}
@Override
protected void populateModel(ModelNode operation, ModelNode model) throws OperationFailedException {
model.setEmptyObject();
}
}
@@ -0,0 +1,47 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.ReloadRequiredRemoveStepHandler;
import org.jboss.as.controller.SimpleResourceDefinition;
import org.jboss.as.controller.descriptions.ModelDescriptionConstants;
import org.jboss.as.controller.operations.common.GenericSubsystemDescribeHandler;
import org.jboss.as.controller.registry.ManagementResourceRegistration;
import org.jboss.as.controller.registry.OperationEntry;
/**
* Definition of subsystem=keycloak.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
public class KeycloakSubsystemDefinition extends SimpleResourceDefinition {
protected KeycloakSubsystemDefinition() {
super(KeycloakExtension.SUBSYSTEM_PATH,
KeycloakExtension.getResourceDescriptionResolver("subsystem"),
KeycloakSubsystemAdd.INSTANCE,
ReloadRequiredRemoveStepHandler.INSTANCE
);
}
@Override
public void registerOperations(ManagementResourceRegistration resourceRegistration) {
super.registerOperations(resourceRegistration);
resourceRegistration.registerOperationHandler(ModelDescriptionConstants.DESCRIBE, GenericSubsystemDescribeHandler.INSTANCE, GenericSubsystemDescribeHandler.INSTANCE, false, OperationEntry.EntryType.PRIVATE);
}
}
@@ -0,0 +1,294 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.PathAddress;
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.SimpleAttributeDefinition;
import org.jboss.as.controller.descriptions.ModelDescriptionConstants;
import org.jboss.as.controller.parsing.ParseUtils;
import org.jboss.as.controller.persistence.SubsystemMarshallingContext;
import org.jboss.dmr.ModelNode;
import org.jboss.dmr.Property;
import org.jboss.staxmapper.XMLElementReader;
import org.jboss.staxmapper.XMLElementWriter;
import org.jboss.staxmapper.XMLExtendedStreamReader;
import org.jboss.staxmapper.XMLExtendedStreamWriter;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* The subsystem parser, which uses stax to read and write to and from xml
*/
class KeycloakSubsystemParser implements XMLStreamConstants, XMLElementReader<List<ModelNode>>, XMLElementWriter<SubsystemMarshallingContext> {
/**
* {@inheritDoc}
*/
@Override
public void readElement(final XMLExtendedStreamReader reader, final List<ModelNode> list) throws XMLStreamException {
// Require no attributes
ParseUtils.requireNoAttributes(reader);
ModelNode addKeycloakSub = Util.createAddOperation(PathAddress.pathAddress(KeycloakExtension.PATH_SUBSYSTEM));
list.add(addKeycloakSub);
while (reader.hasNext() && nextTag(reader) != END_ELEMENT) {
if (reader.getLocalName().equals(RealmDefinition.TAG_NAME)) {
readRealm(reader, list);
}
else if (reader.getLocalName().equals(SecureDeploymentDefinition.TAG_NAME)) {
readDeployment(reader, list);
}
}
}
// used for debugging
private int nextTag(XMLExtendedStreamReader reader) throws XMLStreamException {
return reader.nextTag();
}
private void readRealm(XMLExtendedStreamReader reader, List<ModelNode> list) throws XMLStreamException {
String realmName = readNameAttribute(reader);
ModelNode addRealm = new ModelNode();
addRealm.get(ModelDescriptionConstants.OP).set(ModelDescriptionConstants.ADD);
PathAddress addr = PathAddress.pathAddress(PathElement.pathElement(ModelDescriptionConstants.SUBSYSTEM, KeycloakExtension.SUBSYSTEM_NAME),
PathElement.pathElement(RealmDefinition.TAG_NAME, realmName));
addRealm.get(ModelDescriptionConstants.OP_ADDR).set(addr.toModelNode());
while (reader.hasNext() && nextTag(reader) != END_ELEMENT) {
String tagName = reader.getLocalName();
SimpleAttributeDefinition def = RealmDefinition.lookup(tagName);
if (def == null) throw new XMLStreamException("Unknown realm tag " + tagName);
def.parseAndSetParameter(reader.getElementText(), addRealm, reader);
}
if (!SharedAttributeDefinitons.validateTruststoreSetIfRequired(addRealm)) {
//TODO: externalize the message
throw new XMLStreamException("truststore and truststore-password must be set if ssl-required is not none and disable-trust-manager is false.");
}
list.add(addRealm);
}
private void readDeployment(XMLExtendedStreamReader reader, List<ModelNode> resourcesToAdd) throws XMLStreamException {
String name = readNameAttribute(reader);
ModelNode addSecureDeployment = new ModelNode();
addSecureDeployment.get(ModelDescriptionConstants.OP).set(ModelDescriptionConstants.ADD);
PathAddress addr = PathAddress.pathAddress(PathElement.pathElement(ModelDescriptionConstants.SUBSYSTEM, KeycloakExtension.SUBSYSTEM_NAME),
PathElement.pathElement(SecureDeploymentDefinition.TAG_NAME, name));
addSecureDeployment.get(ModelDescriptionConstants.OP_ADDR).set(addr.toModelNode());
List<ModelNode> credentialsToAdd = new ArrayList<ModelNode>();
while (reader.hasNext() && nextTag(reader) != END_ELEMENT) {
String tagName = reader.getLocalName();
if (tagName.equals(CredentialDefinition.TAG_NAME)) {
readCredential(reader, addr, credentialsToAdd);
continue;
}
SimpleAttributeDefinition def = SecureDeploymentDefinition.lookup(tagName);
if (def == null) throw new XMLStreamException("Unknown secure-deployment tag " + tagName);
def.parseAndSetParameter(reader.getElementText(), addSecureDeployment, reader);
}
/**
* TODO need to check realm-ref first.
if (!SharedAttributeDefinitons.validateTruststoreSetIfRequired(addSecureDeployment)) {
//TODO: externalize the message
throw new XMLStreamException("truststore and truststore-password must be set if ssl-required is not none and disable-trust-manager is false.");
}
*/
// Must add credentials after the deployment is added.
resourcesToAdd.add(addSecureDeployment);
resourcesToAdd.addAll(credentialsToAdd);
}
public void readCredential(XMLExtendedStreamReader reader, PathAddress parent, List<ModelNode> credentialsToAdd) throws XMLStreamException {
String name = readNameAttribute(reader);
Map<String, String> values = new HashMap<>();
String textValue = null;
while (reader.hasNext()) {
int next = reader.next();
if (next == CHARACTERS) {
// text value of credential element (like for "secret" )
String text = reader.getText();
if (text == null || text.trim().isEmpty()) {
continue;
}
textValue = text;
} else if (next == START_ELEMENT) {
String key = reader.getLocalName();
reader.next();
String value = reader.getText();
reader.next();
values.put(key, value);
} else if (next == END_ELEMENT) {
break;
}
}
if (textValue != null) {
ModelNode addCredential = getCredentialToAdd(parent, name, textValue);
credentialsToAdd.add(addCredential);
} else {
for (Map.Entry<String, String> entry : values.entrySet()) {
ModelNode addCredential = getCredentialToAdd(parent, name + "." + entry.getKey(), entry.getValue());
credentialsToAdd.add(addCredential);
}
}
}
private ModelNode getCredentialToAdd(PathAddress parent, String name, String value) {
ModelNode addCredential = new ModelNode();
addCredential.get(ModelDescriptionConstants.OP).set(ModelDescriptionConstants.ADD);
PathAddress addr = PathAddress.pathAddress(parent, PathElement.pathElement(CredentialDefinition.TAG_NAME, name));
addCredential.get(ModelDescriptionConstants.OP_ADDR).set(addr.toModelNode());
addCredential.get(CredentialDefinition.VALUE.getName()).set(value);
return addCredential;
}
// expects that the current tag will have one single attribute called "name"
private String readNameAttribute(XMLExtendedStreamReader reader) throws XMLStreamException {
String name = null;
for (int i = 0; i < reader.getAttributeCount(); i++) {
String attr = reader.getAttributeLocalName(i);
if (attr.equals("name")) {
name = reader.getAttributeValue(i);
continue;
}
throw ParseUtils.unexpectedAttribute(reader, i);
}
if (name == null) {
throw ParseUtils.missingRequired(reader, Collections.singleton("name"));
}
return name;
}
/**
* {@inheritDoc}
*/
@Override
public void writeContent(final XMLExtendedStreamWriter writer, final SubsystemMarshallingContext context) throws XMLStreamException {
context.startSubsystemElement(KeycloakExtension.NAMESPACE, false);
writeRealms(writer, context);
writeSecureDeployments(writer, context);
writer.writeEndElement();
}
private void writeRealms(XMLExtendedStreamWriter writer, SubsystemMarshallingContext context) throws XMLStreamException {
if (!context.getModelNode().get(RealmDefinition.TAG_NAME).isDefined()) {
return;
}
for (Property realm : context.getModelNode().get(RealmDefinition.TAG_NAME).asPropertyList()) {
writer.writeStartElement(RealmDefinition.TAG_NAME);
writer.writeAttribute("name", realm.getName());
ModelNode realmElements = realm.getValue();
for (AttributeDefinition element : RealmDefinition.ALL_ATTRIBUTES) {
element.marshallAsElement(realmElements, writer);
}
writer.writeEndElement();
}
}
private void writeSecureDeployments(XMLExtendedStreamWriter writer, SubsystemMarshallingContext context) throws XMLStreamException {
if (!context.getModelNode().get(SecureDeploymentDefinition.TAG_NAME).isDefined()) {
return;
}
for (Property deployment : context.getModelNode().get(SecureDeploymentDefinition.TAG_NAME).asPropertyList()) {
writer.writeStartElement(SecureDeploymentDefinition.TAG_NAME);
writer.writeAttribute("name", deployment.getName());
ModelNode deploymentElements = deployment.getValue();
for (AttributeDefinition element : SecureDeploymentDefinition.ALL_ATTRIBUTES) {
element.marshallAsElement(deploymentElements, writer);
}
ModelNode credentials = deploymentElements.get(CredentialDefinition.TAG_NAME);
if (credentials.isDefined()) {
writeCredentials(writer, credentials);
}
writer.writeEndElement();
}
}
private void writeCredentials(XMLExtendedStreamWriter writer, ModelNode credentials) throws XMLStreamException {
Map<String, Object> parsed = new LinkedHashMap<>();
for (Property credential : credentials.asPropertyList()) {
String credName = credential.getName();
String credValue = credential.getValue().get(CredentialDefinition.VALUE.getName()).asString();
if (credName.indexOf('.') > -1) {
String[] parts = credName.split("\\.");
String provider = parts[0];
String propKey = parts[1];
Map<String, String> currentProviderMap = (Map<String, String>) parsed.get(provider);
if (currentProviderMap == null) {
currentProviderMap = new LinkedHashMap<>();
parsed.put(provider, currentProviderMap);
}
currentProviderMap.put(propKey, credValue);
} else {
parsed.put(credName, credValue);
}
}
for (Map.Entry<String, Object> entry : parsed.entrySet()) {
writer.writeStartElement(CredentialDefinition.TAG_NAME);
writer.writeAttribute("name", entry.getKey());
Object value = entry.getValue();
if (value instanceof String) {
writeCharacters(writer, (String) value);
} else {
Map<String, String> credentialProps = (Map<String, String>) value;
for (Map.Entry<String, String> prop : credentialProps.entrySet()) {
writer.writeStartElement(prop.getKey());
writeCharacters(writer, prop.getValue());
writer.writeEndElement();
}
}
writer.writeEndElement();
}
}
// code taken from org.jboss.as.controller.AttributeMarshaller
private void writeCharacters(XMLExtendedStreamWriter writer, String content) throws XMLStreamException {
if (content.indexOf('\n') > -1) {
// Multiline content. Use the overloaded variant that staxmapper will format
writer.writeCharacters(content);
} else {
// Staxmapper will just output the chars without adding newlines if this is used
char[] chars = content.toCharArray();
writer.writeCharacters(chars, 0, chars.length);
}
}
}
@@ -0,0 +1,58 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.AbstractAddStepHandler;
import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.ServiceVerificationHandler;
import org.jboss.dmr.ModelNode;
import org.jboss.msc.service.ServiceController;
import java.util.List;
/**
* Add a new realm.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
public final class RealmAddHandler extends AbstractAddStepHandler {
public static RealmAddHandler INSTANCE = new RealmAddHandler();
private RealmAddHandler() {}
@Override
protected void populateModel(ModelNode operation, ModelNode model) throws OperationFailedException {
for (AttributeDefinition attrib : RealmDefinition.ALL_ATTRIBUTES) {
attrib.validateAndSet(operation, model);
}
if (!SharedAttributeDefinitons.validateTruststoreSetIfRequired(model.clone())) {
//TODO: externalize message
throw new OperationFailedException("truststore and truststore-password must be set if ssl-required is not none and disable-trust-manager is false.");
}
}
@Override
protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model, ServiceVerificationHandler verificationHandler, List<ServiceController<?>> newControllers) throws OperationFailedException {
KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance();
ckService.addRealm(operation, context.resolveExpressions(model));
}
}
@@ -0,0 +1,89 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.SimpleAttributeDefinition;
import org.jboss.as.controller.SimpleResourceDefinition;
import org.jboss.as.controller.descriptions.ModelDescriptionConstants;
import org.jboss.as.controller.operations.common.GenericSubsystemDescribeHandler;
import org.jboss.as.controller.registry.ManagementResourceRegistration;
import org.jboss.as.controller.registry.OperationEntry;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Defines attributes and operations for the Realm
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
class RealmDefinition extends SimpleResourceDefinition {
public static final String TAG_NAME = "realm";
protected static final List<SimpleAttributeDefinition> REALM_ONLY_ATTRIBUTES = new ArrayList<SimpleAttributeDefinition>();
static {
}
protected static final List<SimpleAttributeDefinition> ALL_ATTRIBUTES = new ArrayList<SimpleAttributeDefinition>();
static {
ALL_ATTRIBUTES.addAll(REALM_ONLY_ATTRIBUTES);
ALL_ATTRIBUTES.addAll(SharedAttributeDefinitons.ATTRIBUTES);
}
private static final Map<String, SimpleAttributeDefinition> DEFINITION_LOOKUP = new HashMap<String, SimpleAttributeDefinition>();
static {
for (SimpleAttributeDefinition def : ALL_ATTRIBUTES) {
DEFINITION_LOOKUP.put(def.getXmlName(), def);
}
}
private static final RealmWriteAttributeHandler realmAttrHandler = new RealmWriteAttributeHandler(ALL_ATTRIBUTES.toArray(new SimpleAttributeDefinition[0]));
public RealmDefinition() {
super(PathElement.pathElement("realm"),
KeycloakExtension.getResourceDescriptionResolver("realm"),
RealmAddHandler.INSTANCE,
RealmRemoveHandler.INSTANCE);
}
@Override
public void registerOperations(ManagementResourceRegistration resourceRegistration) {
super.registerOperations(resourceRegistration);
resourceRegistration.registerOperationHandler(ModelDescriptionConstants.DESCRIBE, GenericSubsystemDescribeHandler.INSTANCE, GenericSubsystemDescribeHandler.INSTANCE, false, OperationEntry.EntryType.PRIVATE);
}
@Override
public void registerAttributes(ManagementResourceRegistration resourceRegistration) {
super.registerAttributes(resourceRegistration);
for (AttributeDefinition attrDef : ALL_ATTRIBUTES) {
//TODO: use subclass of realmAttrHandler that can call RealmDefinition.validateTruststoreSetIfRequired
resourceRegistration.registerReadWriteAttribute(attrDef, null, realmAttrHandler);
}
}
public static SimpleAttributeDefinition lookup(String name) {
return DEFINITION_LOOKUP.get(name);
}
}
@@ -0,0 +1,41 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.AbstractRemoveStepHandler;
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.dmr.ModelNode;
/**
* Remove a realm.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
final class RealmRemoveHandler extends AbstractRemoveStepHandler {
public static RealmRemoveHandler INSTANCE = new RealmRemoveHandler();
private RealmRemoveHandler() {}
@Override
protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException {
KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance();
ckService.removeRealm(operation);
}
}
@@ -0,0 +1,54 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.AbstractWriteAttributeHandler;
import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.dmr.ModelNode;
/**
* Update an attribute on a realm.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
class RealmWriteAttributeHandler extends AbstractWriteAttributeHandler<KeycloakAdapterConfigService> {
public RealmWriteAttributeHandler(AttributeDefinition... definitions) {
super(definitions);
}
@Override
protected boolean applyUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName,
ModelNode resolvedValue, ModelNode currentValue, HandbackHolder<KeycloakAdapterConfigService> hh) throws OperationFailedException {
KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance();
ckService.updateRealm(operation, attributeName, resolvedValue);
hh.setHandback(ckService);
return false;
}
@Override
protected void revertUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName,
ModelNode valueToRestore, ModelNode valueToRevert, KeycloakAdapterConfigService ckService) throws OperationFailedException {
ckService.updateRealm(operation, attributeName, valueToRestore);
}
}
@@ -0,0 +1,54 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.AbstractAddStepHandler;
import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.ServiceVerificationHandler;
import org.jboss.dmr.ModelNode;
import org.jboss.msc.service.ServiceController;
import java.util.List;
/**
* Add a deployment to a realm.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
final class SecureDeploymentAddHandler extends AbstractAddStepHandler {
public static SecureDeploymentAddHandler INSTANCE = new SecureDeploymentAddHandler();
private SecureDeploymentAddHandler() {
}
@Override
protected void populateModel(ModelNode operation, ModelNode model) throws OperationFailedException {
for (AttributeDefinition attr : SecureDeploymentDefinition.ALL_ATTRIBUTES) {
attr.validateAndSet(operation, model);
}
}
@Override
protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model, ServiceVerificationHandler verificationHandler, List<ServiceController<?>> newControllers) throws OperationFailedException {
KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance();
ckService.addSecureDeployment(operation, context.resolveExpressions(model));
}
}
@@ -0,0 +1,154 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.SimpleAttributeDefinition;
import org.jboss.as.controller.SimpleAttributeDefinitionBuilder;
import org.jboss.as.controller.SimpleResourceDefinition;
import org.jboss.as.controller.descriptions.ModelDescriptionConstants;
import org.jboss.as.controller.operations.common.GenericSubsystemDescribeHandler;
import org.jboss.as.controller.operations.validation.IntRangeValidator;
import org.jboss.as.controller.operations.validation.StringLengthValidator;
import org.jboss.as.controller.registry.ManagementResourceRegistration;
import org.jboss.as.controller.registry.OperationEntry;
import org.jboss.dmr.ModelNode;
import org.jboss.dmr.ModelType;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Defines attributes and operations for a secure-deployment.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
class SecureDeploymentDefinition extends SimpleResourceDefinition {
public static final String TAG_NAME = "secure-deployment";
protected static final SimpleAttributeDefinition REALM =
new SimpleAttributeDefinitionBuilder("realm", ModelType.STRING, true)
.setXmlName("realm")
.setAllowExpression(true)
.setValidator(new StringLengthValidator(1, Integer.MAX_VALUE, true, true))
.build();
protected static final SimpleAttributeDefinition RESOURCE =
new SimpleAttributeDefinitionBuilder("resource", ModelType.STRING, true)
.setXmlName("resource")
.setAllowExpression(true)
.setValidator(new StringLengthValidator(1, Integer.MAX_VALUE, true, true))
.build();
protected static final SimpleAttributeDefinition USE_RESOURCE_ROLE_MAPPINGS =
new SimpleAttributeDefinitionBuilder("use-resource-role-mappings", ModelType.BOOLEAN, true)
.setXmlName("use-resource-role-mappings")
.setAllowExpression(true)
.setDefaultValue(new ModelNode(false))
.build();
protected static final SimpleAttributeDefinition BEARER_ONLY =
new SimpleAttributeDefinitionBuilder("bearer-only", ModelType.BOOLEAN, true)
.setXmlName("bearer-only")
.setAllowExpression(true)
.setDefaultValue(new ModelNode(false))
.build();
protected static final SimpleAttributeDefinition ENABLE_BASIC_AUTH =
new SimpleAttributeDefinitionBuilder("enable-basic-auth", ModelType.BOOLEAN, true)
.setXmlName("enable-basic-auth")
.setAllowExpression(true)
.setDefaultValue(new ModelNode(false))
.build();
protected static final SimpleAttributeDefinition PUBLIC_CLIENT =
new SimpleAttributeDefinitionBuilder("public-client", ModelType.BOOLEAN, true)
.setXmlName("public-client")
.setAllowExpression(true)
.setDefaultValue(new ModelNode(false))
.build();
protected static final SimpleAttributeDefinition TURN_OFF_CHANGE_SESSION =
new SimpleAttributeDefinitionBuilder("turn-off-change-session-id-on-login", ModelType.BOOLEAN, true)
.setXmlName("turn-off-change-session-id-on-login")
.setAllowExpression(true)
.setDefaultValue(new ModelNode(false))
.build();
protected static final SimpleAttributeDefinition TOKEN_MINIMUM_TIME_TO_LIVE =
new SimpleAttributeDefinitionBuilder("token-minimum-time-to-live", ModelType.INT, true)
.setXmlName("token-minimum-time-to-live")
.setValidator(new IntRangeValidator(-1, true))
.setAllowExpression(true)
.build();
protected static final SimpleAttributeDefinition MIN_TIME_BETWEEN_JWKS_REQUESTS =
new SimpleAttributeDefinitionBuilder("min-time-between-jwks-requests", ModelType.INT, true)
.setXmlName("min-time-between-jwks-requests")
.setValidator(new IntRangeValidator(-1, true))
.setAllowExpression(true)
.build();
protected static final List<SimpleAttributeDefinition> DEPLOYMENT_ONLY_ATTRIBUTES = new ArrayList<SimpleAttributeDefinition>();
static {
DEPLOYMENT_ONLY_ATTRIBUTES.add(REALM);
DEPLOYMENT_ONLY_ATTRIBUTES.add(RESOURCE);
DEPLOYMENT_ONLY_ATTRIBUTES.add(USE_RESOURCE_ROLE_MAPPINGS);
DEPLOYMENT_ONLY_ATTRIBUTES.add(BEARER_ONLY);
DEPLOYMENT_ONLY_ATTRIBUTES.add(ENABLE_BASIC_AUTH);
DEPLOYMENT_ONLY_ATTRIBUTES.add(PUBLIC_CLIENT);
DEPLOYMENT_ONLY_ATTRIBUTES.add(TURN_OFF_CHANGE_SESSION);
DEPLOYMENT_ONLY_ATTRIBUTES.add(TOKEN_MINIMUM_TIME_TO_LIVE);
DEPLOYMENT_ONLY_ATTRIBUTES.add(MIN_TIME_BETWEEN_JWKS_REQUESTS);
}
protected static final List<SimpleAttributeDefinition> ALL_ATTRIBUTES = new ArrayList<SimpleAttributeDefinition>();
static {
ALL_ATTRIBUTES.addAll(DEPLOYMENT_ONLY_ATTRIBUTES);
ALL_ATTRIBUTES.addAll(SharedAttributeDefinitons.ATTRIBUTES);
}
private static final Map<String, SimpleAttributeDefinition> DEFINITION_LOOKUP = new HashMap<String, SimpleAttributeDefinition>();
static {
for (SimpleAttributeDefinition def : ALL_ATTRIBUTES) {
DEFINITION_LOOKUP.put(def.getXmlName(), def);
}
}
private static SecureDeploymentWriteAttributeHandler attrHandler = new SecureDeploymentWriteAttributeHandler(ALL_ATTRIBUTES);
public SecureDeploymentDefinition() {
super(PathElement.pathElement(TAG_NAME),
KeycloakExtension.getResourceDescriptionResolver(TAG_NAME),
SecureDeploymentAddHandler.INSTANCE,
SecureDeploymentRemoveHandler.INSTANCE);
}
@Override
public void registerOperations(ManagementResourceRegistration resourceRegistration) {
super.registerOperations(resourceRegistration);
resourceRegistration.registerOperationHandler(ModelDescriptionConstants.DESCRIBE, GenericSubsystemDescribeHandler.INSTANCE, GenericSubsystemDescribeHandler.INSTANCE, false, OperationEntry.EntryType.PRIVATE);
}
@Override
public void registerAttributes(ManagementResourceRegistration resourceRegistration) {
super.registerAttributes(resourceRegistration);
for (AttributeDefinition attrDef : ALL_ATTRIBUTES) {
resourceRegistration.registerReadWriteAttribute(attrDef, null, attrHandler);
}
}
public static SimpleAttributeDefinition lookup(String name) {
return DEFINITION_LOOKUP.get(name);
}
}
@@ -0,0 +1,41 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.AbstractRemoveStepHandler;
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.dmr.ModelNode;
/**
* Remove a secure-deployment from a realm.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
final class SecureDeploymentRemoveHandler extends AbstractRemoveStepHandler {
public static SecureDeploymentRemoveHandler INSTANCE = new SecureDeploymentRemoveHandler();
private SecureDeploymentRemoveHandler() {}
@Override
protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException {
KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance();
ckService.removeSecureDeployment(operation);
}
}
@@ -0,0 +1,59 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.AbstractWriteAttributeHandler;
import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.SimpleAttributeDefinition;
import org.jboss.dmr.ModelNode;
import java.util.List;
/**
* Update an attribute on a secure-deployment.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
class SecureDeploymentWriteAttributeHandler extends AbstractWriteAttributeHandler<KeycloakAdapterConfigService> {
public SecureDeploymentWriteAttributeHandler(List<SimpleAttributeDefinition> definitions) {
this(definitions.toArray(new AttributeDefinition[definitions.size()]));
}
public SecureDeploymentWriteAttributeHandler(AttributeDefinition... definitions) {
super(definitions);
}
@Override
protected boolean applyUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName,
ModelNode resolvedValue, ModelNode currentValue, HandbackHolder<KeycloakAdapterConfigService> hh) throws OperationFailedException {
KeycloakAdapterConfigService ckService = KeycloakAdapterConfigService.getInstance();
hh.setHandback(ckService);
ckService.updateSecureDeployment(operation, attributeName, resolvedValue);
return false;
}
@Override
protected void revertUpdateToRuntime(OperationContext context, ModelNode operation, String attributeName,
ModelNode valueToRestore, ModelNode valueToRevert, KeycloakAdapterConfigService ckService) throws OperationFailedException {
ckService.updateSecureDeployment(operation, attributeName, valueToRestore);
}
}
@@ -0,0 +1,227 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.SimpleAttributeDefinition;
import org.jboss.as.controller.SimpleAttributeDefinitionBuilder;
import org.jboss.as.controller.operations.validation.IntRangeValidator;
import org.jboss.as.controller.operations.validation.StringLengthValidator;
import org.jboss.dmr.ModelNode;
import org.jboss.dmr.ModelType;
import java.util.ArrayList;
import java.util.List;
/**
* Defines attributes that can be present in both a realm and an application (secure-deployment).
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
class SharedAttributeDefinitons {
protected static final SimpleAttributeDefinition REALM_PUBLIC_KEY =
new SimpleAttributeDefinitionBuilder("realm-public-key", ModelType.STRING, true)
.setXmlName("realm-public-key")
.setAllowExpression(true)
.setValidator(new StringLengthValidator(1, Integer.MAX_VALUE, true, true))
.build();
protected static final SimpleAttributeDefinition AUTH_SERVER_URL =
new SimpleAttributeDefinitionBuilder("auth-server-url", ModelType.STRING, true)
.setXmlName("auth-server-url")
.setAllowExpression(true)
.setValidator(new StringLengthValidator(1, Integer.MAX_VALUE, true, true))
.build();
protected static final SimpleAttributeDefinition SSL_REQUIRED =
new SimpleAttributeDefinitionBuilder("ssl-required", ModelType.STRING, true)
.setXmlName("ssl-required")
.setAllowExpression(true)
.setDefaultValue(new ModelNode("external"))
.build();
protected static final SimpleAttributeDefinition ALLOW_ANY_HOSTNAME =
new SimpleAttributeDefinitionBuilder("allow-any-hostname", ModelType.BOOLEAN, true)
.setXmlName("allow-any-hostname")
.setAllowExpression(true)
.setDefaultValue(new ModelNode(false))
.build();
protected static final SimpleAttributeDefinition DISABLE_TRUST_MANAGER =
new SimpleAttributeDefinitionBuilder("disable-trust-manager", ModelType.BOOLEAN, true)
.setXmlName("disable-trust-manager")
.setAllowExpression(true)
.setDefaultValue(new ModelNode(false))
.build();
protected static final SimpleAttributeDefinition TRUSTSTORE =
new SimpleAttributeDefinitionBuilder("truststore", ModelType.STRING, true)
.setXmlName("truststore")
.setAllowExpression(true)
.setValidator(new StringLengthValidator(1, Integer.MAX_VALUE, true, true))
.build();
protected static final SimpleAttributeDefinition TRUSTSTORE_PASSWORD =
new SimpleAttributeDefinitionBuilder("truststore-password", ModelType.STRING, true)
.setXmlName("truststore-password")
.setAllowExpression(true)
.setValidator(new StringLengthValidator(1, Integer.MAX_VALUE, true, true))
.build();
protected static final SimpleAttributeDefinition CONNECTION_POOL_SIZE =
new SimpleAttributeDefinitionBuilder("connection-pool-size", ModelType.INT, true)
.setXmlName("connection-pool-size")
.setAllowExpression(true)
.setValidator(new IntRangeValidator(0, true))
.build();
protected static final SimpleAttributeDefinition ENABLE_CORS =
new SimpleAttributeDefinitionBuilder("enable-cors", ModelType.BOOLEAN, true)
.setXmlName("enable-cors")
.setAllowExpression(true)
.setDefaultValue(new ModelNode(false))
.build();
protected static final SimpleAttributeDefinition CLIENT_KEYSTORE =
new SimpleAttributeDefinitionBuilder("client-keystore", ModelType.STRING, true)
.setXmlName("client-keystore")
.setAllowExpression(true)
.setValidator(new StringLengthValidator(1, Integer.MAX_VALUE, true, true))
.build();
protected static final SimpleAttributeDefinition CLIENT_KEYSTORE_PASSWORD =
new SimpleAttributeDefinitionBuilder("client-keystore-password", ModelType.STRING, true)
.setXmlName("client-keystore-password")
.setAllowExpression(true)
.setValidator(new StringLengthValidator(1, Integer.MAX_VALUE, true, true))
.build();
protected static final SimpleAttributeDefinition CLIENT_KEY_PASSWORD =
new SimpleAttributeDefinitionBuilder("client-key-password", ModelType.STRING, true)
.setXmlName("client-key-password")
.setAllowExpression(true)
.setValidator(new StringLengthValidator(1, Integer.MAX_VALUE, true, true))
.build();
protected static final SimpleAttributeDefinition CORS_MAX_AGE =
new SimpleAttributeDefinitionBuilder("cors-max-age", ModelType.INT, true)
.setXmlName("cors-max-age")
.setAllowExpression(true)
.setValidator(new IntRangeValidator(-1, true))
.build();
protected static final SimpleAttributeDefinition CORS_ALLOWED_HEADERS =
new SimpleAttributeDefinitionBuilder("cors-allowed-headers", ModelType.STRING, true)
.setXmlName("cors-allowed-headers")
.setAllowExpression(true)
.setValidator(new StringLengthValidator(1, Integer.MAX_VALUE, true, true))
.build();
protected static final SimpleAttributeDefinition CORS_ALLOWED_METHODS =
new SimpleAttributeDefinitionBuilder("cors-allowed-methods", ModelType.STRING, true)
.setAllowExpression(true)
.setValidator(new StringLengthValidator(1, Integer.MAX_VALUE, true, true))
.build();
protected static final SimpleAttributeDefinition EXPOSE_TOKEN =
new SimpleAttributeDefinitionBuilder("expose-token", ModelType.BOOLEAN, true)
.setXmlName("expose-token")
.setAllowExpression(true)
.setDefaultValue(new ModelNode(false))
.build();
protected static final SimpleAttributeDefinition AUTH_SERVER_URL_FOR_BACKEND_REQUESTS =
new SimpleAttributeDefinitionBuilder("auth-server-url-for-backend-requests", ModelType.STRING, true)
.setXmlName("auth-server-url-for-backend-requests")
.setAllowExpression(true)
.setValidator(new StringLengthValidator(1, Integer.MAX_VALUE, true, true))
.build();
protected static final SimpleAttributeDefinition ALWAYS_REFRESH_TOKEN =
new SimpleAttributeDefinitionBuilder("always-refresh-token", ModelType.BOOLEAN, true)
.setXmlName("always-refresh-token")
.setAllowExpression(true)
.setDefaultValue(new ModelNode(false))
.build();
protected static final SimpleAttributeDefinition REGISTER_NODE_AT_STARTUP =
new SimpleAttributeDefinitionBuilder("register-node-at-startup", ModelType.BOOLEAN, true)
.setXmlName("register-node-at-startup")
.setAllowExpression(true)
.setDefaultValue(new ModelNode(false))
.build();
protected static final SimpleAttributeDefinition REGISTER_NODE_PERIOD =
new SimpleAttributeDefinitionBuilder("register-node-period", ModelType.INT, true)
.setXmlName("register-node-period")
.setAllowExpression(true)
.setValidator(new IntRangeValidator(-1, true))
.build();
protected static final SimpleAttributeDefinition TOKEN_STORE =
new SimpleAttributeDefinitionBuilder("token-store", ModelType.STRING, true)
.setXmlName("token-store")
.setAllowExpression(true)
.setValidator(new StringLengthValidator(1, Integer.MAX_VALUE, true, true))
.build();
protected static final SimpleAttributeDefinition PRINCIPAL_ATTRIBUTE =
new SimpleAttributeDefinitionBuilder("principal-attribute", ModelType.STRING, true)
.setXmlName("principal-attribute")
.setAllowExpression(true)
.setValidator(new StringLengthValidator(1, Integer.MAX_VALUE, true, true))
.build();
protected static final List<SimpleAttributeDefinition> ATTRIBUTES = new ArrayList<SimpleAttributeDefinition>();
static {
ATTRIBUTES.add(REALM_PUBLIC_KEY);
ATTRIBUTES.add(AUTH_SERVER_URL);
ATTRIBUTES.add(TRUSTSTORE);
ATTRIBUTES.add(TRUSTSTORE_PASSWORD);
ATTRIBUTES.add(SSL_REQUIRED);
ATTRIBUTES.add(ALLOW_ANY_HOSTNAME);
ATTRIBUTES.add(DISABLE_TRUST_MANAGER);
ATTRIBUTES.add(CONNECTION_POOL_SIZE);
ATTRIBUTES.add(ENABLE_CORS);
ATTRIBUTES.add(CLIENT_KEYSTORE);
ATTRIBUTES.add(CLIENT_KEYSTORE_PASSWORD);
ATTRIBUTES.add(CLIENT_KEY_PASSWORD);
ATTRIBUTES.add(CORS_MAX_AGE);
ATTRIBUTES.add(CORS_ALLOWED_HEADERS);
ATTRIBUTES.add(CORS_ALLOWED_METHODS);
ATTRIBUTES.add(EXPOSE_TOKEN);
ATTRIBUTES.add(AUTH_SERVER_URL_FOR_BACKEND_REQUESTS);
ATTRIBUTES.add(ALWAYS_REFRESH_TOKEN);
ATTRIBUTES.add(REGISTER_NODE_AT_STARTUP);
ATTRIBUTES.add(REGISTER_NODE_PERIOD);
ATTRIBUTES.add(TOKEN_STORE);
ATTRIBUTES.add(PRINCIPAL_ATTRIBUTE);
}
/**
* truststore and truststore-password must be set if ssl-required is not none and disable-trust-manager is false.
*
* @param attributes The full set of attributes.
*
* @return <code>true</code> if the attributes are valid, <code>false</code> otherwise.
*/
public static boolean validateTruststoreSetIfRequired(ModelNode attributes) {
if (isSet(attributes, DISABLE_TRUST_MANAGER)) {
return true;
}
if (isSet(attributes, SSL_REQUIRED) && attributes.get(SSL_REQUIRED.getName()).asString().equals("none")) {
return true;
}
//TODO, look into alternatives & requires properties on AttributeDefinition
return isSet(attributes, TRUSTSTORE) && isSet(attributes, TRUSTSTORE_PASSWORD);
}
private static boolean isSet(ModelNode attributes, SimpleAttributeDefinition def) {
ModelNode attribute = attributes.get(def.getName());
if (def.getType() == ModelType.BOOLEAN) {
return attribute.isDefined() && attribute.asBoolean();
}
return attribute.isDefined() && !attribute.asString().isEmpty();
}
}
@@ -0,0 +1,59 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.as.controller.PathAddress;
import org.jboss.as.controller.descriptions.ModelDescriptionConstants;
import org.jboss.dmr.ModelNode;
import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.OP;
import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.OP_ADDR;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public class Util {
public static ModelNode createAddOperation(final PathAddress address) {
return createOperation(ModelDescriptionConstants.ADD, address);
}
public static ModelNode createAddOperation() {
return createEmptyOperation(ModelDescriptionConstants.ADD, null);
}
public static ModelNode createRemoveOperation(final PathAddress address) {
return createOperation(ModelDescriptionConstants.REMOVE, address);
}
public static ModelNode createOperation(final String operationName, final PathAddress address) {
return createEmptyOperation(operationName, address);
}
public static ModelNode createEmptyOperation(String operationName, final PathAddress address) {
ModelNode op = new ModelNode();
op.get(OP).set(operationName);
if (address != null) {
op.get(OP_ADDR).set(address.toModelNode());
} else {
// Just establish the standard structure; caller can fill in address later
op.get(OP_ADDR);
}
return op;
}
}
@@ -0,0 +1,49 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7.logging;
import org.jboss.logging.BasicLogger;
import org.jboss.logging.LogMessage;
import org.jboss.logging.Logger;
import org.jboss.logging.Message;
import org.jboss.logging.MessageLogger;
import static org.jboss.logging.Logger.Level.DEBUG;
import static org.jboss.logging.Logger.Level.INFO;
/**
* This interface to be fleshed out later when error messages are fully externalized.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
@MessageLogger(projectCode = "KEYCLOAK")
public interface KeycloakLogger extends BasicLogger {
/**
* A logger with a category of the package name.
*/
KeycloakLogger ROOT_LOGGER = Logger.getMessageLogger(KeycloakLogger.class, "org.jboss.keycloak");
@LogMessage(level = INFO)
@Message(value = "Keycloak subsystem override for deployment %s")
void deploymentSecured(String deployment);
@LogMessage(level = DEBUG)
@Message(value = "Keycloak has overriden and secured deployment %s")
void warSecured(String deployment);
}
@@ -0,0 +1,34 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7.logging;
import org.jboss.logging.MessageBundle;
import org.jboss.logging.Messages;
/**
* This interface to be fleshed out later when error messages are fully externalized.
*
* @author Stan Silvert ssilvert@redhat.com (C) 2012 Red Hat Inc.
*/
@MessageBundle(projectCode = "TLIP")
public interface KeycloakMessages {
/**
* The messages
*/
KeycloakMessages MESSAGES = Messages.getBundle(KeycloakMessages.class);
}
@@ -0,0 +1,18 @@
#
# Copyright 2016 Red Hat, Inc. and/or its affiliates
# and other contributors as indicated by the @author tags.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
org.keycloak.subsystem.as7.KeycloakExtension
@@ -0,0 +1,91 @@
#
# Copyright 2016 Red Hat, Inc. and/or its affiliates
# and other contributors as indicated by the @author tags.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
keycloak.subsystem=Keycloak adapter subsystem
keycloak.subsystem.add=Operation Adds Keycloak adapter subsystem
keycloak.subsystem.remove=Operation removes Keycloak adapter subsystem
keycloak.subsystem.realm=A Keycloak realm.
keycloak.subsystem.secure-deployment=A deployment secured by Keycloak.
keycloak.realm=A Keycloak realm.
keycloak.realm.add=Add a realm definition to the subsystem.
keycloak.realm.remove=Remove a realm from the subsystem.
keycloak.realm.realm-public-key=Public key of the realm
keycloak.realm.auth-server-url=Base URL of the Realm Auth Server
keycloak.realm.disable-trust-manager=Adapter will not use a trust manager when making adapter HTTPS requests
keycloak.realm.ssl-required=Specify if SSL is required (valid values are all, external and none)
keycloak.realm.allow-any-hostname=SSL Setting
keycloak.realm.truststore=Truststore used for adapter client HTTPS requests
keycloak.realm.truststore-password=Password of the Truststore
keycloak.realm.connection-pool-size=Connection pool size for the client used by the adapter
keycloak.realm.enable-cors=Enable Keycloak CORS support
keycloak.realm.client-keystore=n/a
keycloak.realm.client-keystore-password=n/a
keycloak.realm.client-key-password=n/a
keycloak.realm.cors-max-age=CORS max-age header
keycloak.realm.cors-allowed-headers=CORS allowed headers
keycloak.realm.cors-allowed-methods=CORS allowed methods
keycloak.realm.expose-token=Enable secure URL that exposes access token
keycloak.realm.auth-server-url-for-backend-requests=URL to use to make background calls to auth server
keycloak.realm.always-refresh-token=Refresh token on every single web request
keycloak.realm.register-node-at-startup=Cluster setting
keycloak.realm.register-node-period=how often to re-register node
keycloak.realm.token-store=cookie or session storage for auth session data
keycloak.realm.principal-attribute=token attribute to use to set Principal name
keycloak.secure-deployment=A deployment secured by Keycloak
keycloak.secure-deployment.add=Add a deployment to be secured by Keycloak
keycloak.secure-deployment.realm=Keycloak realm
keycloak.secure-deployment.remove=Remove a deployment to be secured by Keycloak
keycloak.secure-deployment.realm-public-key=Public key of the realm
keycloak.secure-deployment.auth-server-url=Base URL of the Realm Auth Server
keycloak.secure-deployment.disable-trust-manager=Adapter will not use a trust manager when making adapter HTTPS requests
keycloak.secure-deployment.ssl-required=Specify if SSL is required (valid values are all, external and none)
keycloak.secure-deployment.allow-any-hostname=SSL Setting
keycloak.secure-deployment.truststore=Truststore used for adapter client HTTPS requests
keycloak.secure-deployment.truststore-password=Password of the Truststore
keycloak.secure-deployment.connection-pool-size=Connection pool size for the client used by the adapter
keycloak.secure-deployment.resource=Application name
keycloak.secure-deployment.use-resource-role-mappings=Use resource level permissions from token
keycloak.secure-deployment.credentials=Adapter credentials
keycloak.secure-deployment.bearer-only=Bearer Token Auth only
keycloak.secure-deployment.enable-basic-auth=Enable Basic Authentication
keycloak.secure-deployment.public-client=Public client
keycloak.secure-deployment.enable-cors=Enable Keycloak CORS support
keycloak.secure-deployment.client-keystore=n/a
keycloak.secure-deployment.client-keystore-password=n/a
keycloak.secure-deployment.client-key-password=n/a
keycloak.secure-deployment.cors-max-age=CORS max-age header
keycloak.secure-deployment.cors-allowed-headers=CORS allowed headers
keycloak.secure-deployment.cors-allowed-methods=CORS allowed methods
keycloak.secure-deployment.expose-token=Enable secure URL that exposes access token
keycloak.secure-deployment.auth-server-url-for-backend-requests=URL to use to make background calls to auth server
keycloak.secure-deployment.always-refresh-token=Refresh token on every single web request
keycloak.secure-deployment.register-node-at-startup=Cluster setting
keycloak.secure-deployment.register-node-period=how often to re-register node
keycloak.secure-deployment.token-store=cookie or session storage for auth session data
keycloak.secure-deployment.principal-attribute=token attribute to use to set Principal name
keycloak.secure-deployment.turn-off-change-session-id-on-login=The session id is changed by default on a successful login. Change this to true if you want to turn this off
keycloak.secure-deployment.token-minimum-time-to-live=The adapter will refresh the token if the current token is expired OR will expire in 'token-minimum-time-to-live' seconds or less
keycloak.secure-deployment.min-time-between-jwks-requests=If adapter recognize token signed by unknown public key, it will try to download new public key from keycloak server. However it won't try to download if already tried it in less than 'min-time-between-jwks-requests' seconds
keycloak.secure-deployment.credential=Credential value
keycloak.credential=Credential
keycloak.credential.value=Credential value
keycloak.credential.add=Credential add
keycloak.credential.remove=Credential remove
@@ -1,5 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright 2016 Red Hat, Inc. and/or its affiliates
~ and other contributors as indicated by the @author tags.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:jboss:domain:keycloak:1.1"
xmlns="urn:jboss:domain:keycloak:1.1"
@@ -87,6 +104,9 @@
<xs:element name="token-store" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="principal-attribute" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="enable-basic-auth" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
<xs:element name="turn-off-change-session-id-on-login" type="xs:boolean" minOccurs="0" maxOccurs="1" />
<xs:element name="token-minimum-time-to-live" type="xs:integer" minOccurs="0" maxOccurs="1"/>
<xs:element name="min-time-between-jwks-requests" type="xs:integer" minOccurs="0" maxOccurs="1"/>
</xs:all>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
@@ -0,0 +1,88 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.subsystem.as7;
import org.jboss.dmr.ModelNode;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
/**
*
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
public class RealmDefinitionTestCase {
private ModelNode model;
@Before
public void setUp() {
model = new ModelNode();
model.get("realm").set("demo");
model.get("resource").set("customer-portal");
model.get("realm-public-key").set("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrVrCuTtArbgaZzL1hvh0xtL5mc7o0NqPVnYXkLvgcwiC3BjLGw1tGEGoJaXDuSaRllobm53JBhjx33UNv+5z/UMG4kytBWxheNVKnL6GgqlNabMaFfPLPCF8kAgKnsi79NMo+n6KnSY8YeUmec/p2vjO2NjsSAVcWEQMVhJ31LwIDAQAB");
model.get("auth-url").set("http://localhost:8080/auth-server/realms/demo/protocol/openid-connect/login");
model.get("code-url").set("http://localhost:8080/auth-server/realms/demo/protocol/openid-connect/access/codes");
model.get("expose-token").set(true);
ModelNode credential = new ModelNode();
credential.get("password").set("password");
model.get("credentials").set(credential);
}
@Test
public void testIsTruststoreSetIfRequired() throws Exception {
model.get("ssl-required").set("none");
model.get("disable-trust-manager").set(true);
Assert.assertTrue(SharedAttributeDefinitons.validateTruststoreSetIfRequired(model));
model.get("ssl-required").set("none");
model.get("disable-trust-manager").set(false);
Assert.assertTrue(SharedAttributeDefinitons.validateTruststoreSetIfRequired(model));
model.get("ssl-required").set("all");
model.get("disable-trust-manager").set(true);
Assert.assertTrue(SharedAttributeDefinitons.validateTruststoreSetIfRequired(model));
model.get("ssl-required").set("all");
model.get("disable-trust-manager").set(false);
Assert.assertFalse(SharedAttributeDefinitons.validateTruststoreSetIfRequired(model));
model.get("ssl-required").set("external");
model.get("disable-trust-manager").set(false);
Assert.assertFalse(SharedAttributeDefinitons.validateTruststoreSetIfRequired(model));
model.get("ssl-required").set("all");
model.get("disable-trust-manager").set(false);
model.get("truststore").set("foo");
Assert.assertFalse(SharedAttributeDefinitons.validateTruststoreSetIfRequired(model));
model.get("ssl-required").set("all");
model.get("disable-trust-manager").set(false);
model.get("truststore").set("foo");
model.get("truststore-password").set("password");
Assert.assertTrue(SharedAttributeDefinitons.validateTruststoreSetIfRequired(model));
model.get("ssl-required").set("external");
model.get("disable-trust-manager").set(false);
model.get("truststore").set("foo");
model.get("truststore-password").set("password");
Assert.assertTrue(SharedAttributeDefinitons.validateTruststoreSetIfRequired(model));
}
}
+38
View File
@@ -0,0 +1,38 @@
<!--
~ Copyright 2016 Red Hat, Inc. and/or its affiliates
~ and other contributors as indicated by the @author tags.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>2.5.5.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<name>Keycloak AS7 / JBoss EAP 6 Integration</name>
<description/>
<modelVersion>4.0.0</modelVersion>
<artifactId>keycloak-as7-integration-pom</artifactId>
<packaging>pom</packaging>
<modules>
<module>as7-adapter-spi</module>
<module>as7-adapter</module>
<module>as7-subsystem</module>
</modules>
</project>
+81
View File
@@ -0,0 +1,81 @@
<?xml version="1.0"?>
<!--
~ Copyright 2016 Red Hat, Inc. and/or its affiliates
~ and other contributors as indicated by the @author tags.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>2.5.5.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>keycloak-installed-adapter</artifactId>
<name>Keycloak Installed Application</name>
<description/>
<dependencies>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-core</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-core</artifactId>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
@@ -1,13 +1,31 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.installed;
import org.keycloak.OAuth2Constants;
import org.keycloak.OAuthErrorException;
import org.keycloak.RSATokenVerifier;
import org.keycloak.common.VerificationException;
import org.keycloak.adapters.KeycloakDeployment;
import org.keycloak.adapters.KeycloakDeploymentBuilder;
import org.keycloak.adapters.ServerRequest;
import org.keycloak.adapters.rotation.AdapterRSATokenVerifier;
import org.keycloak.common.VerificationException;
import org.keycloak.jose.jws.JWSInput;
import org.keycloak.jose.jws.JWSInputException;
import org.keycloak.representations.AccessToken;
import org.keycloak.representations.AccessTokenResponse;
import org.keycloak.representations.IDToken;
@@ -101,6 +119,7 @@ public class KeycloakInstalled {
.queryParam(OAuth2Constants.CLIENT_ID, deployment.getResourceName())
.queryParam(OAuth2Constants.REDIRECT_URI, redirectUri)
.queryParam(OAuth2Constants.STATE, state)
.queryParam(OAuth2Constants.SCOPE, OAuth2Constants.SCOPE_OPENID)
.build().toString();
Desktop.getDesktop().browse(new URI(authUrl));
@@ -157,6 +176,7 @@ public class KeycloakInstalled {
.queryParam(OAuth2Constants.RESPONSE_TYPE, OAuth2Constants.CODE)
.queryParam(OAuth2Constants.CLIENT_ID, deployment.getResourceName())
.queryParam(OAuth2Constants.REDIRECT_URI, redirectUri)
.queryParam(OAuth2Constants.SCOPE, OAuth2Constants.SCOPE_OPENID)
.build().toString();
printer.println("Open the following URL in a browser. After login copy/paste the code back and press <enter>");
@@ -193,12 +213,12 @@ public class KeycloakInstalled {
refreshToken = tokenResponse.getRefreshToken();
idTokenString = tokenResponse.getIdToken();
token = RSATokenVerifier.verifyToken(tokenString, deployment.getRealmKey(), deployment.getRealmInfoUrl());
token = AdapterRSATokenVerifier.verifyToken(tokenString, deployment);
if (idTokenString != null) {
JWSInput input = new JWSInput(idTokenString);
try {
JWSInput input = new JWSInput(idTokenString);
idToken = input.readJsonContent(IDToken.class);
} catch (IOException e) {
} catch (JWSInputException e) {
throw new VerificationException();
}
}
+103
View File
@@ -0,0 +1,103 @@
<?xml version="1.0"?>
<!--
~ Copyright 2016 Red Hat, Inc. and/or its affiliates
~ and other contributors as indicated by the @author tags.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>2.5.5.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>keycloak-jaxrs-oauth-client</artifactId>
<name>Keycloak JAX-RS OAuth Client</name>
<description/>
<dependencies>
<dependency>
<groupId>org.jboss.spec.javax.ws.rs</groupId>
<artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.spec.javax.servlet</groupId>
<artifactId>jboss-servlet-api_3.0_spec</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,31 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.jaxrs;
import javax.annotation.Priority;
import javax.ws.rs.Priorities;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.container.PreMatching;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
@PreMatching
@Priority(Priorities.AUTHENTICATION)
public interface JaxrsBearerTokenFilter extends ContainerRequestFilter {
}
@@ -1,10 +1,25 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.jaxrs;
import org.keycloak.KeycloakPrincipal;
import org.keycloak.adapters.AdapterDeploymentContext;
import org.keycloak.adapters.AdapterUtils;
import org.keycloak.adapters.spi.AuthChallenge;
import org.keycloak.adapters.spi.AuthOutcome;
import org.keycloak.adapters.AuthenticatedActionsHandler;
import org.keycloak.adapters.BasicAuthRequestAuthenticator;
import org.keycloak.adapters.BearerTokenRequestAuthenticator;
@@ -14,6 +29,8 @@ import org.keycloak.adapters.KeycloakDeploymentBuilder;
import org.keycloak.adapters.NodesRegistrationManagement;
import org.keycloak.adapters.PreAuthActionsHandler;
import org.keycloak.adapters.RefreshableKeycloakSecurityContext;
import org.keycloak.adapters.spi.AuthChallenge;
import org.keycloak.adapters.spi.AuthOutcome;
import org.keycloak.adapters.spi.UserSessionManagement;
import org.keycloak.common.constants.GenericConstants;
@@ -23,7 +40,6 @@ import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.PreMatching;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.SecurityContext;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -1,18 +1,36 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.jaxrs;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
import org.keycloak.KeycloakSecurityContext;
import org.keycloak.adapters.OIDCHttpFacade;
import org.keycloak.adapters.spi.AuthenticationError;
import org.keycloak.adapters.spi.LogoutError;
import org.keycloak.common.util.HostUtils;
import javax.security.cert.X509Certificate;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.SecurityContext;
import org.keycloak.KeycloakSecurityContext;
import org.keycloak.adapters.OIDCHttpFacade;
import org.keycloak.common.util.HostUtils;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
@@ -48,6 +66,11 @@ public class JaxrsHttpFacade implements OIDCHttpFacade {
return requestContext.getUriInfo().getRequestUri().toString();
}
@Override
public String getRelativePath() {
return requestContext.getUriInfo().getPath();
}
@Override
public boolean isSecure() {
return securityContext.isSecure();
@@ -93,6 +116,17 @@ public class JaxrsHttpFacade implements OIDCHttpFacade {
// TODO: implement properly
return HostUtils.getIpAddress();
}
@Override
public void setError(AuthenticationError error) {
requestContext.setProperty(AuthenticationError.class.getName(), error);
}
@Override
public void setError(LogoutError error) {
requestContext.setProperty(LogoutError.class.getName(), error);
}
}
protected class ResponseFacade implements OIDCHttpFacade.Response {
@@ -132,6 +166,13 @@ public class JaxrsHttpFacade implements OIDCHttpFacade {
throw new IllegalStateException("Not supported yet");
}
@Override
public void sendError(int code) {
javax.ws.rs.core.Response response = responseBuilder.status(code).build();
requestContext.abortWith(response);
responseFinished = true;
}
@Override
public void sendError(int code, String message) {
javax.ws.rs.core.Response response = responseBuilder.status(code).entity(message).build();
@@ -1,8 +1,26 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.jaxrs;
import org.keycloak.AbstractOAuthClient;
import org.keycloak.OAuth2Constants;
import org.keycloak.representations.AccessTokenResponse;
import org.keycloak.util.TokenUtil;
import javax.ws.rs.BadRequestException;
import javax.ws.rs.InternalServerErrorException;
@@ -68,14 +86,13 @@ public class JaxrsOAuthClient extends AbstractOAuthClient {
}
public Response redirect(UriInfo uriInfo, String redirectUri) {
String state = getStateCode();
String scopeParam = TokenUtil.attachOIDCScope(scope);
UriBuilder uriBuilder = UriBuilder.fromUri(authUrl)
.queryParam(OAuth2Constants.CLIENT_ID, clientId)
.queryParam(OAuth2Constants.REDIRECT_URI, redirectUri)
.queryParam(OAuth2Constants.STATE, state);
if (scope != null) {
uriBuilder.queryParam(OAuth2Constants.SCOPE, scope);
}
.queryParam(OAuth2Constants.STATE, state)
.queryParam(OAuth2Constants.SCOPE, scopeParam);
URI url = uriBuilder.build();
@@ -1,18 +1,34 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.jaxrs;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.logging.Logger;
import javax.annotation.Priority;
import javax.ws.rs.Priorities;
import javax.ws.rs.container.PreMatching;
import org.keycloak.adapters.KeycloakConfigResolver;
import org.keycloak.common.constants.GenericConstants;
import org.osgi.framework.BundleContext;
import javax.annotation.Priority;
import javax.ws.rs.Priorities;
import javax.ws.rs.container.PreMatching;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.logging.Logger;
/**
* Variant of JaxrsBearerTokenFilter, which can be used to properly use resources from current osgi bundle
*
+160
View File
@@ -0,0 +1,160 @@
<?xml version="1.0"?>
<!--
~ Copyright 2016 Red Hat, Inc. and/or its affiliates
~ and other contributors as indicated by the @author tags.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>2.5.5.Final</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>keycloak-jetty-core</artifactId>
<name>Keycloak Jetty Core Integration</name>
<properties>
<jetty9.version>8.1.17.v20150415</jetty9.version>
<keycloak.osgi.export>
org.keycloak.adapters.jetty.core.*
</keycloak.osgi.export>
<keycloak.osgi.import>
org.eclipse.jetty.*;version="[8.1,10)";resolution:=optional,
javax.servlet.*;version="[2.5,4)";resolution:=optional,
org.keycloak.*;version="${project.version}",
*;resolution:=optional
</keycloak.osgi.import>
</properties>
<description />
<dependencies>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<version>${jboss.logging.version}</version>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-core</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-spi</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-jetty-adapter-spi</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-adapter-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jetty9.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
<version>${jetty9.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-security</artifactId>
<version>${jetty9.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<!-- Adding OSGI metadata to the JAR without changing the packaging type. -->
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
<configuration>
<instructions>
<Bundle-ClassPath>.</Bundle-ClassPath>
<Bundle-Name>${project.name}</Bundle-Name>
<Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
<Import-Package>${keycloak.osgi.import}</Import-Package>
<Export-Package>${keycloak.osgi.export}</Export-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project>
@@ -1,6 +1,25 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.jetty.core;
import org.eclipse.jetty.security.DefaultUserIdentity;
import org.eclipse.jetty.security.IdentityService;
import org.eclipse.jetty.security.LoginService;
import org.eclipse.jetty.security.ServerAuthException;
import org.eclipse.jetty.security.UserAuthentication;
import org.eclipse.jetty.security.authentication.DeferredAuthentication;
@@ -8,28 +27,26 @@ import org.eclipse.jetty.security.authentication.FormAuthenticator;
import org.eclipse.jetty.security.authentication.LoginAuthenticator;
import org.eclipse.jetty.server.Authentication;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Response;
import org.eclipse.jetty.server.UserIdentity;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.util.URIUtil;
import org.jboss.logging.Logger;
import org.keycloak.KeycloakPrincipal;
import org.keycloak.KeycloakSecurityContext;
import org.keycloak.adapters.AdapterDeploymentContext;
import org.keycloak.adapters.AdapterTokenStore;
import org.keycloak.adapters.AdapterUtils;
import org.keycloak.adapters.jetty.spi.JettyHttpFacade;
import org.keycloak.adapters.jetty.spi.JettyUserSessionManagement;
import org.keycloak.adapters.spi.AuthChallenge;
import org.keycloak.adapters.spi.AuthOutcome;
import org.keycloak.adapters.AuthenticatedActionsHandler;
import org.keycloak.adapters.spi.HttpFacade;
import org.keycloak.adapters.KeycloakConfigResolver;
import org.keycloak.adapters.KeycloakDeployment;
import org.keycloak.adapters.KeycloakDeploymentBuilder;
import org.keycloak.adapters.NodesRegistrationManagement;
import org.keycloak.adapters.PreAuthActionsHandler;
import org.keycloak.adapters.RefreshableKeycloakSecurityContext;
import org.keycloak.adapters.jetty.spi.JettyHttpFacade;
import org.keycloak.adapters.jetty.spi.JettyUserSessionManagement;
import org.keycloak.adapters.spi.AuthChallenge;
import org.keycloak.adapters.spi.AuthOutcome;
import org.keycloak.adapters.spi.HttpFacade;
import org.keycloak.constants.AdapterConstants;
import org.keycloak.enums.TokenStore;
import org.keycloak.representations.adapters.config.AdapterConfig;
@@ -42,7 +59,6 @@ import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashSet;
import java.util.Set;
@@ -118,10 +134,44 @@ public abstract class AbstractKeycloakJettyAuthenticator extends LoginAuthentica
return new DefaultUserIdentity(theSubject, principal, theRoles);
}
private class DummyLoginService implements LoginService {
@Override
public String getName() {
return null;
}
@Override
public UserIdentity login(String username, Object credentials) {
return null;
}
@Override
public boolean validate(UserIdentity user) {
return false;
}
@Override
public IdentityService getIdentityService() {
return null;
}
@Override
public void setIdentityService(IdentityService service) {
}
@Override
public void logout(UserIdentity user) {
}
}
@Override
public void setConfiguration(AuthConfiguration configuration) {
//super.setConfiguration(configuration);
initializeKeycloak();
// need this so that getUserPrincipal does not throw NPE
_loginService = new DummyLoginService();
String error = configuration.getInitParameter(FormAuthenticator.__FORM_ERROR_PAGE);
setErrorPage(error);
}
@@ -265,15 +315,6 @@ public abstract class AbstractKeycloakJettyAuthenticator extends LoginAuthentica
AuthChallenge challenge = authenticator.getChallenge();
if (challenge != null) {
challenge.challenge(facade);
if (challenge.errorPage() && errorPage != null) {
Response response = (Response)res;
try {
response.sendRedirect(response.encodeRedirectURL(URIUtil.addPaths(request.getContextPath(), errorPage)));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
return Authentication.SEND_CONTINUE;
}
@@ -296,13 +337,13 @@ public abstract class AbstractKeycloakJettyAuthenticator extends LoginAuthentica
Authentication authentication = request.getAuthentication();
if (!(authentication instanceof KeycloakAuthentication)) {
UserIdentity userIdentity = createIdentity(principal);
authentication = createAuthentication(userIdentity);
authentication = createAuthentication(userIdentity, request);
request.setAuthentication(authentication);
}
return authentication;
}
protected abstract Authentication createAuthentication(UserIdentity userIdentity);
protected abstract Authentication createAuthentication(UserIdentity userIdentity, Request request);
public static abstract class KeycloakAuthentication extends UserAuthentication {
public KeycloakAuthentication(String method, UserIdentity userIdentity) {
@@ -1,3 +1,20 @@
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.keycloak.adapters.jetty.core;
import org.eclipse.jetty.server.Request;
@@ -6,11 +23,11 @@ import org.keycloak.KeycloakPrincipal;
import org.keycloak.KeycloakSecurityContext;
import org.keycloak.adapters.AdapterTokenStore;
import org.keycloak.adapters.CookieTokenStore;
import org.keycloak.adapters.spi.HttpFacade;
import org.keycloak.adapters.KeycloakDeployment;
import org.keycloak.adapters.OidcKeycloakAccount;
import org.keycloak.adapters.RefreshableKeycloakSecurityContext;
import org.keycloak.adapters.RequestAuthenticator;
import org.keycloak.adapters.spi.HttpFacade;
/**
* Handle storage of token info in cookie. Per-request object.
Loaded 100 of 8039 files, more files were not shown because too many files have changed in this diff. Show more