Compare commits

..
221 Commits
Author SHA1 Message Date
Stian Thorgersen a739dd8eb3 Version bump 2015-10-14 07:02:00 +02:00
Stian Thorgersen 07f27633ac Fix tests 2015-10-13 09:52:30 +02:00
Stian Thorgersen e05afd2e48 Version bump 2015-10-13 09:05:59 +02:00
Stian Thorgersen 58372b3151 Add tests without client secret 2015-10-13 09:03:18 +02:00
Stian Thorgersen 6b70b5ddcd KEYCLOAK-1833 Fix error messages for identity brokering 2015-09-10 21:17:31 +02:00
Stian Thorgersen fd73d48e0e Version bump 2015-09-10 21:17:21 +02:00
Marek Posolda 1c38bb7158 Merge pull request #1609 from mposolda/master
KEYCLOAK-1824 ClientIdAndSecretCredentialsProvider not found when dep…
2015-09-08 23:45:04 +02:00
mposolda 149ef706dd KEYCLOAK-1824 ClientIdAndSecretCredentialsProvider not found when deploying Fuse examples 2015-09-08 22:55:43 +02:00
Marek Posolda f1c40dd345 Merge pull request #1608 from mposolda/master
KEYCLOAK-1826
2015-09-08 21:01:52 +02:00
mposolda 6225ccfc06 KEYCLOAK-1826 2015-09-08 21:00:42 +02:00
Marek Posolda 34de631b2a Merge pull request #1607 from mposolda/master
KEYCLOAK-1821 KEYCLOAK-1825 Migration and export/import of clientAuth…
2015-09-08 20:28:04 +02:00
mposolda 86f0092622 KEYCLOAK-1821 KEYCLOAK-1825 Migration and export/import of clientAuthFlow + resetCredentialsFlow 2015-09-08 19:53:35 +02:00
Marek Posolda 76f3842dad Merge pull request #1606 from mposolda/master
Fix service-account demo app on EAP 6.4
2015-09-08 17:22:29 +02:00
mposolda d818ebdd9e Fix service-account demo app on EAP 6.4 2015-09-08 16:41:27 +02:00
Stian Thorgersen 4d90898dd9 Merge pull request #1605 from stianst/master
KEYCLOAK-1818
2015-09-08 09:56:06 +02:00
Stian Thorgersen 298b9e01d8 KEYCLOAK-1818
Authenticator example doesn't work when deployed as a module
2015-09-08 09:55:45 +02:00
Marek Posolda d0b08cacd8 Merge pull request #1604 from mposolda/master
KEYCLOAK-1811 Pluggable client authentication config through adapter …
2015-09-08 00:12:49 +02:00
mposolda 050c65a520 KEYCLOAK-1811 Pluggable client authentication config through adapter subsystem 2015-09-07 23:30:08 +02:00
Stian Thorgersen 5c2fc1120b Merge pull request #1603 from stianst/master
KEYCLOAK-1816
2015-09-07 13:32:29 +02:00
Stian Thorgersen 3d2acbe780 KEYCLOAK-1816
LocaleHelper prints info 'Locale en is not supported'
2015-09-07 13:02:52 +02:00
Stian Thorgersen bce0e0ea90 Merge pull request #1602 from stianst/master
Fixes
2015-09-07 10:36:48 +02:00
Stian Thorgersen 931102ff26 KEYCLOAK-1808
Revoke Grant button should disappear
2015-09-07 10:08:32 +02:00
Stian Thorgersen 5a3938d12f KEYCLOAK-1806
oauth-client example fails if you say no to grant
2015-09-07 09:59:32 +02:00
Stian Thorgersen dca1751a63 KEYCLOAK-1812 View user attributes in admin console doesn't work 2015-09-07 09:40:34 +02:00
Stian Thorgersen f6ec9af61e KEYCLOAK-1805
address theme causes exception for login theme
2015-09-07 09:33:34 +02:00
Stian Thorgersen 64f2f84ffa Merge pull request #1599 from stianst/master
KEYCLOAK-1804
2015-09-07 08:51:01 +02:00
Marek Posolda 5df5e53f11 Merge pull request #1601 from mposolda/master
KEYCLOAK-1799 Download adapter JSON config with proper adapter
2015-09-07 08:36:53 +02:00
mposolda 81f4c50574 KEYCLOAK-1799 Download adapter JSON config with proper adapter 2015-09-04 22:23:01 +02:00
Marek Posolda 2550d16127 Merge pull request #1598 from mposolda/master
KEYCLOAK-1801 Additional fix and cleanup
2015-09-04 22:21:37 +02:00
Stian Thorgersen f3675681c3 KEYCLOAK-1804
Replace -snapshot with startup time in resource urls
2015-09-04 16:55:32 +02:00
Stian Thorgersen 28de8dc5b7 Merge pull request #1597 from mstruk/KEYCLOAK-1779
KEYCLOAK-1779 NPE due to missing web.xml/jboss-web.xml
2015-09-04 16:14:55 +02:00
mposolda 35e63a9398 KEYCLOAK-1801 Additional fix and cleanup 2015-09-04 15:19:43 +02:00
Stian Thorgersen f23f1cc813 Merge pull request #1596 from stianst/master
KEYCLOAK-1803
2015-09-04 14:22:07 +02:00
Marko Strukelj b0095154d1 KEYCLOAK-1779 NPE due to missing web.xml/jboss-web.xml
- improved code readability and npe fix
2015-09-04 14:18:57 +02:00
Stian Thorgersen 79ea9ed314 KEYCLOAK-1803
On/off switches in mappers doesn't work
2015-09-04 14:17:30 +02:00
Marek Posolda 413db0dce1 Merge pull request #1595 from mposolda/master
Add 'Testsuite' prefix to the dummy providers used for testing only
2015-09-04 13:53:10 +02:00
William DeCoste e6745532ce KEYCLOAK-1779 2015-09-04 13:52:25 +02:00
Stian Thorgersen 59da0f90f8 Merge pull request #1594 from stianst/master
KEYCLOAK-1801
2015-09-04 13:37:32 +02:00
mposolda 76f0f52ee3 Add 'Testsuite' prefix to the dummy providers used for testing only 2015-09-04 13:17:20 +02:00
Stian Thorgersen 73c230f1ca KEYCLOAK-1801
Suggestions to improving client credentials tab
2015-09-04 12:55:25 +02:00
Marek Posolda ddee72c756 Merge pull request #1593 from mposolda/master
KEYCLOAK-1802
2015-09-04 12:46:15 +02:00
mposolda 6318964374 KEYCLOAK-1802 2015-09-04 12:21:45 +02:00
Stian Thorgersen 853f1af40d Merge pull request #1592 from stianst/master
KEYCLOAK-1794 Admin console issues with kc-provider-config directive
2015-09-04 11:43:30 +02:00
Stian Thorgersen d429b2151a KEYCLOAK-1800
Save buttons not aligned correctly on otp-policy and flow-bindings pages
2015-09-04 10:14:55 +02:00
Stian Thorgersen b223e1a7af KEYCLOAK-1794 Admin console issues with kc-provider-config directive 2015-09-04 09:59:48 +02:00
Stian Thorgersen c806b8911e Merge pull request #1590 from stianst/master
KEYCLOAK-1796 Tabs on Keycloak identity provider shown twice
2015-09-04 08:59:16 +02:00
Stian Thorgersen 9f30a51925 KEYCLOAK-1796 Tabs on Keycloak identity provider shown twice 2015-09-04 08:32:00 +02:00
Stian Thorgersen a8b7129269 Merge pull request #1585 from stianst/master
KEYCLOAK-1793 Remove cancel button on login and login-totp
2015-09-04 08:19:27 +02:00
Stian Thorgersen 991b0e8ee2 Merge pull request #1586 from suchabar/bsuchano-branch
My first PR - addition of extra info to Readme file
2015-09-04 08:19:12 +02:00
Marek Posolda e9d1475475 Merge pull request #1588 from mposolda/master
KEYCLOAK-1795 Add just one clientAuthenticatorType per client
2015-09-04 00:35:25 +02:00
mposolda bc189554aa KEYCLOAK-1795 Add just one clientAuthenticatorType per client 2015-09-04 00:09:54 +02:00
suchabar d0f26ae4cf Edited Readme file 2015-09-03 20:46:34 +02:00
suchabar ab6d247ef1 Edited Readme file 2015-09-03 20:43:16 +02:00
Stian Thorgersen fcc82a47e4 KEYCLOAK-1793 Remove cancel button on login and login-totp 2015-09-03 20:21:56 +02:00
Marek Posolda 25e53db96f Merge pull request #1584 from mposolda/master
KEYCLOAK-1760 KEYCLOAK-1697 DB fixes
2015-09-03 12:23:31 +02:00
mposolda 89660d06e5 KEYCLOAK-1697 Fix UserProvider.searchForUsersByAttribute 2015-09-03 11:47:24 +02:00
mposolda 493fd0ad6a KEYCLOAK-1760 Fix DB issues when schema option defined 2015-09-03 11:47:24 +02:00
Stian Thorgersen 11422524f3 Merge pull request #1583 from stianst/master
KEYCLOAK-1497 Success message is not displayed when assigning roles
2015-09-03 09:29:24 +02:00
Stian Thorgersen 957214ed78 KEYCLOAK-1497 Success message is not displayed when assigning roles 2015-09-03 08:52:05 +02:00
Bill Burke f013cca3b8 Merge pull request #1582 from patriot1burke/master
KEYCLOAK-1792
2015-09-02 18:00:35 -04:00
Bill Burke a1cfc0a0ff KEYCLOAK-1792 2015-09-02 17:17:57 -04:00
Bill Burke e8b3b3acf3 Merge pull request #1581 from patriot1burke/master
client session required actions
2015-09-02 17:10:20 -04:00
Bill Burke 0cfb03be03 Merge remote-tracking branch 'upstream/master' 2015-09-02 16:30:35 -04:00
Bill Burke 7d4b93e01e client session required actions 2015-09-02 16:30:16 -04:00
Marek Posolda 2f3793805b Merge pull request #1579 from mposolda/master
MSSQL Fix
2015-09-02 16:59:36 +02:00
mposolda a310c13d32 MSSQL Fix 2015-09-02 16:25:38 +02:00
Stian Thorgersen 38a721425d Merge pull request #1578 from stianst/master
KEYCLOAK-1791 Exception on logout on EAP 6.4 overlay
2015-09-02 15:25:45 +02:00
Marek Posolda dfc34d99c5 Merge pull request #1577 from mposolda/master
KEYCLOAK-1789 KEYCLOAK-1759 Export/import fixes
2015-09-02 14:49:23 +02:00
Stian Thorgersen 6c58fd03a4 KEYCLOAK-1791 Exception on logout on EAP 6.4 overlay 2015-09-02 14:40:43 +02:00
mposolda 5b9d1286cc KEYCLOAK-1789 KEYCLOAK-1759 Export/import fixes 2015-09-02 12:03:16 +02:00
Stian Thorgersen d9e330802c Merge pull request #1576 from jean-merelis/master
aligning translation pt-br with master
2015-09-02 09:25:28 +02:00
Stian Thorgersen 085de8a069 Merge pull request #1571 from ssilvert/ng-upgrade-fix-conflicts
KEYCLOAK-1781: Upgrade AngularJS to version 1.4.4
2015-09-02 09:24:26 +02:00
jean 5af4c63a3e aligning translation pt-br with master 2015-09-01 13:53:01 -03:00
Stian Thorgersen 5177365c28 Merge pull request #1574 from stianst/master
Fix loading resources from theme
2015-09-01 14:06:18 +02:00
Marek Posolda 4df5ff3004 Merge pull request #1573 from mposolda/master
KEYCLOAK-1780 documentation + Generic client authentication screen
2015-09-01 13:58:04 +02:00
Stian Thorgersen 00f6841dc7 Fix loading resources from theme 2015-09-01 13:39:35 +02:00
mposolda be8394158f KEYCLOAK-1780 documentation + Generic client authentication screen 2015-09-01 13:17:14 +02:00
Bill Burke fbf62b2a63 Merge pull request #1572 from patriot1burke/master
more mappers
2015-08-31 20:48:55 -04:00
Bill Burke a047fb947b docs 2015-08-31 16:24:09 -04:00
Bill Burke eec3a3d5c3 more mappers 2015-08-31 16:23:17 -04:00
Stan Silvert 9387de1d1a KEYCLOAK-1781: Upgrade AngularJS to version 1.4.4 2015-08-31 15:09:55 -04:00
Bill Burke b9c90f128a Merge pull request #1570 from patriot1burke/master
KEYCLOAK-1726
2015-08-31 14:46:38 -04:00
Bill Burke 5699efc0f5 KEYCLOAK-1726 2015-08-31 14:46:14 -04:00
Bill Burke 6ead008bf4 Merge pull request #1569 from patriot1burke/master
KEYCLOAK-1721
2015-08-31 13:18:08 -04:00
Bill Burke 34e52839f7 KEYCLOAK-1721 2015-08-31 13:17:45 -04:00
Bill Burke bd54e1c60c Merge pull request #1568 from patriot1burke/master
docs
2015-08-31 10:55:25 -04:00
Bill Burke 03006522e2 docs 2015-08-31 10:54:57 -04:00
Bill Burke 7492ae2990 Merge pull request #1567 from patriot1burke/master
refactor recover password
2015-08-31 10:53:29 -04:00
Bill Burke 6edf890699 Merge pull request #1549 from ahus1/ahus1_jetty_contenttype
KEYCLOAK-1776 / JettySessionTokenStore sets content type on restoring form values
2015-08-31 10:34:16 -04:00
Bill Burke 43fd24f02b Merge remote-tracking branch 'upstream/master' 2015-08-31 10:13:55 -04:00
Bill Burke 22ebb81650 refactor recover password 2015-08-31 10:13:42 -04:00
Bill Burke fd074278f7 Merge pull request #1566 from bdecoste/master
KEYCLOAK-1783
2015-08-30 08:50:47 -04:00
William DeCoste ad497a66cd KEYCLOAK-1783 2015-08-29 08:57:04 -07:00
Bill Burke 41275b0e91 Merge pull request #1564 from patriot1burke/master
KEYCLOAK-1375
2015-08-27 14:56:53 -04:00
Bill Burke b82502af1d KEYCLOAK-1375 2015-08-27 14:15:47 -04:00
Bill Burke 43f2199d46 Merge pull request #1561 from velias/KEYCLOAK-1739
KEYCLOAK-1739 - correct handling of diacritics from http request in KeycloakServer
2015-08-27 09:06:42 -04:00
Bill Burke d44541fc9e Merge pull request #1560 from girirajsharma/master
[KEYCLOAK-1767] Clients table is unsorted
2015-08-27 09:06:05 -04:00
Bill Burke 24147a3d84 Merge pull request #1562 from velias/KEYCLOAK-1741
KEYCLOAK-1741 - Login form keeps "Username or email" field value after reshown due validation error
2015-08-27 09:05:40 -04:00
Vlastimil Elias 244d879d00 KEYCLOAK-1741 - Login form keeps "Username or email" field value after
reshown due validation error
2015-08-26 15:39:41 +02:00
Vlastimil Elias f5f67a629e KEYCLOAK-1739 - correct handling of diacritics from http request in
KeycloakServer
2015-08-26 14:58:37 +02:00
Alexander Schwartz aad1d57502 KEYCLOAK-1776 / check content type on form submit 2015-08-25 17:35:10 +02:00
giriraj sharma cf75c2378f [KEYCLOAK-1767] Clients table is unsorted 2015-08-23 21:03:06 +05:30
Bill Burke 3a64c4d582 Merge pull request #1543 from raehalme/KEYCLOAK-1775
KEYCLOAK-1775 Basic auth no longer redirects on Spring Security
2015-08-21 21:06:00 -04:00
Bill Burke d36376ffcd Merge pull request #1559 from patriot1burke/master
totp and profile refactor
2015-08-21 20:59:51 -04:00
Bill Burke 434197c10d Merge remote-tracking branch 'upstream/master' 2015-08-21 18:30:52 -04:00
Bill Burke d4af694c6f refactor profile and totp update 2015-08-21 18:30:39 -04:00
Bill Burke f245b67036 totp refactor 2015-08-21 17:53:26 -04:00
Bill Burke 945673c7da Merge pull request #1558 from patriot1burke/master
refactor update password
2015-08-21 17:27:42 -04:00
Bill Burke c25967bd61 fix 2015-08-21 17:01:29 -04:00
Bill Burke 165fba6b9c refactor update password 2015-08-21 15:17:01 -04:00
Marek Posolda 76209dd899 Merge pull request #1555 from mposolda/master
KEYCLOAK-1295 Fixes and javadoc
2015-08-21 20:41:21 +02:00
Bill Burke 8c8cc53989 Merge pull request #1556 from patriot1burke/master
document bypassing CORS
2015-08-21 13:26:44 -04:00
Bill Burke 6f463196ef Merge pull request #1554 from patriot1burke/master
adapter fixes
2015-08-21 13:21:02 -04:00
mposolda b0e2624343 KEYCLOAK-1295 Fixes and javadoc 2015-08-21 19:00:31 +02:00
Bill Burke 99fda3a7cb document bypassing CORS 2015-08-21 11:43:13 -04:00
Bill Burke 457039d7ba fix NPE in adapter for invalid cors requests 2015-08-21 11:29:38 -04:00
Bill Burke eb4ffbca29 co-existence of bearer and basic auth 2015-08-21 11:02:56 -04:00
Marek Posolda c9afe8fcc4 Merge pull request #1553 from mposolda/master
KEYCLOAK-1295 Adapter support. Fixes
2015-08-21 09:20:49 +02:00
mposolda d8d6348f67 KEYCLOAK-1295 Adapter support. Fixes 2015-08-21 08:26:12 +02:00
mposolda 87f7ec5909 KEYCLOAK-1561 LDAPDn.getParentDn() return value is not a DN 2015-08-21 08:26:12 +02:00
mposolda 18583eb6ed Fix mongo 2015-08-21 08:26:12 +02:00
Bill Burke b9d0219f04 Merge pull request #1552 from patriot1burke/master
change reset password
2015-08-20 18:52:07 -04:00
Bill Burke d9cb1fc4a9 Merge remote-tracking branch 'upstream/master' 2015-08-20 17:43:54 -04:00
Bill Burke 1654be0a85 change reset password 2015-08-20 17:43:37 -04:00
Stian Thorgersen d5944163d6 Merge pull request #1551 from stianst/master
KEYCLOAK-1761 Remove address from registration and account management
2015-08-20 17:19:47 +02:00
Stian Thorgersen 5ca3a48094 KEYCLOAK-1723 Allow aud to be single field or array 2015-08-20 15:55:52 +02:00
Stian Thorgersen 1fb3d7cd3b KEYCLOAK-1161
web.xml example in the doc is incorrect
2015-08-20 13:40:35 +02:00
Stian Thorgersen f827b2dc0d KEYCLOAK-1130
security-deployment vs. secure-deployment in the documentation
2015-08-20 13:37:50 +02:00
Stian Thorgersen 0295824923 KEYCLOAK-1747
Deal with time inconsistency in keycloak.js
2015-08-20 13:29:32 +02:00
Stian Thorgersen 8fee0c946b Merge pull request #1550 from mstruk/KEYCLOAK-1777
KEYCLOAK-1777 Column \"USERFEDERA0_.REALMENTITY_ID\" not found ...
2015-08-20 12:26:13 +02:00
Stian Thorgersen bd13b8a5fe KEYCLOAK-1761 Remove address from registration and account management
KEYCLOAK-1762 Add example theme that adds address fields to registration, account management and admin console
2015-08-20 12:25:26 +02:00
Stian Thorgersen 743ea95a78 Upgraded instructions to upgrade OpenShift cartridge 2015-08-19 15:56:44 +02:00
Marko Strukelj 2998a0fa35 KEYCLOAK-1777 Column \"USERFEDERA0_.REALMENTITY_ID\" not found on Wildfly 10.0.0.Beta1 2015-08-18 18:10:39 +02:00
Alexander Schwartz 7b0a3989e2 JettySessionTokenStore sets content type on restoring form values
Closes: KEYCLOAK-1776
2015-08-18 15:32:27 +02:00
Stian Thorgersen 06fcb7595a Merge pull request #1548 from stianst/master
Updated Docker hub release instructions
2015-08-18 15:21:53 +02:00
Stian Thorgersen bd3c4d4215 Updated Docker hub release instructions 2015-08-18 15:21:32 +02:00
Stian Thorgersen b969d9edfa Merge pull request #1547 from cainj13/master
add missing tag start type to sample jboss configuration in docbook
2015-08-18 14:46:38 +02:00
Josh Cain 3ef0fb63a9 add missing tag start type to sample jboss configuration in docbook 2015-08-18 08:43:28 -04:00
Stian Thorgersen bf706a9191 Merge pull request #1546 from stianst/master
Updated release process docs
2015-08-18 14:42:55 +02:00
Stian Thorgersen 26be615a80 Updated release process to include updating openshit cartridge and docker images 2015-08-18 14:10:13 +02:00
Stian Thorgersen 81928eb61a Updated release process docs 2015-08-18 13:48:21 +02:00
Marek Posolda 126f517520 Merge pull request #1545 from mposolda/master
KEYCLOAK-1295 pluggable client authentication. Support authenticate c…
2015-08-18 10:54:01 +02:00
mposolda 7028496601 KEYCLOAK-1295 pluggable client authentication. Support authenticate clients with signed JWT 2015-08-17 23:21:23 +02:00
Thomas Raehalme 3a4897c7d2 Separated the error message for Bearer token and Basic authentication failures. 2015-08-17 22:36:59 +03:00
Thomas Raehalme b3f142d715 KeycloakAuthenticationProcessingFilter now handles Basic Authentication the same way as Bearer token. 2015-08-17 18:05:49 +03:00
Stian Thorgersen a4e16ca9c7 Merge pull request #1540 from ssilvert/master
Fix typos in doc.
2015-08-17 10:09:19 +02:00
Bill Burke 57176dee75 Merge pull request #1542 from patriot1burke/master
oops, .info messages
2015-08-16 17:28:30 -04:00
Bill Burke f87ba8a3a9 oops, .info messages 2015-08-16 17:28:07 -04:00
Bill Burke 8c0b33f902 Merge pull request #1541 from patriot1burke/master
reset password refactor
2015-08-16 17:26:49 -04:00
Bill Burke 51e927adf7 Merge remote-tracking branch 'upstream/master' 2015-08-16 16:41:08 -04:00
Bill Burke bf4b681506 tests 2015-08-16 16:40:39 -04:00
Bill Burke 3c88d2cc18 finish refactor 2015-08-16 15:38:00 -04:00
Bill Burke c7b5975ac1 reset password refactor 2015-08-16 15:20:16 -04:00
Stan Silvert 09901997c1 Fix typos in doc. 2015-08-16 14:59:31 -04:00
Bill Burke c0f3d851db reset password refactor/flow 2015-08-16 12:23:15 -04:00
Bill Burke 98b6344f03 Merge pull request #1539 from patriot1burke/master
fix holes
2015-08-15 11:37:20 -04:00
Bill Burke e4b6e4c167 Merge pull request #1523 from velias/KEYCLOAK-1731
KEYCLOAK-1731 - patched user attribute handling for update profile action
2015-08-15 11:30:22 -04:00
Bill Burke d6983e829a Merge remote-tracking branch 'upstream/master' 2015-08-15 10:39:44 -04:00
Bill Burke 374a2ad957 fix holes 2015-08-15 10:39:33 -04:00
Bill Burke 52fd2d7e75 Merge pull request #1538 from patriot1burke/master
refactor auth-spi, auth demo, and docs
2015-08-14 15:14:00 -04:00
Bill Burke 25bb0ade1b Merge remote-tracking branch 'upstream/master' 2015-08-14 14:39:10 -04:00
Bill Burke 6d7be80930 refactor auth-spi, auth demo, and docs 2015-08-14 14:38:59 -04:00
Bill Burke 1f13f6372a register required action 2015-08-14 12:03:37 -04:00
Bill Burke 39fcd84d53 Merge pull request #1537 from patriot1burke/master
auth spi docs and refactor
2015-08-14 08:53:21 -04:00
Bill Burke d11a83d6e2 stuff 2015-08-13 15:32:58 -04:00
Bill Burke 1978e23cfd Merge pull request #1536 from patriot1burke/master
auth spi docs and refactor
2015-08-13 13:47:24 -04:00
Bill Burke 4cc1a774df Merge remote-tracking branch 'upstream/master' 2015-08-13 13:02:27 -04:00
Bill Burke 8a23463328 auth spi refactor and doco 2015-08-13 11:28:11 -04:00
Stian Thorgersen fad2913665 Merge pull request #1535 from stianst/master
Remove user session entities from persistence.xml
2015-08-13 13:38:59 +02:00
Stian Thorgersen c4c27973f3 Remove user session entities from persistence.xml 2015-08-13 10:33:18 +02:00
Stian Thorgersen 2ae733bd07 Merge pull request #1534 from stianst/master
KEYCLOAK-1703 Remove jpa and mongo user session providers
2015-08-13 10:32:25 +02:00
Stian Thorgersen 7665b9f81e KEYCLOAK-1703 Remove jpa and mongo user session providers 2015-08-13 08:57:37 +02:00
Stian Thorgersen 248322c748 Merge pull request #1533 from stianst/master
KEYCLOAK-1702 Removed mem and none realm and user cache
2015-08-13 08:24:13 +02:00
Bill Burke 523bdd5ec9 doco 2015-08-12 20:37:51 -04:00
Stian Thorgersen a8ad00156b KEYCLOAK-1702 Removed mem and none realm and user cache 2015-08-12 16:55:23 +02:00
Stian Thorgersen 8f820713fa Merge pull request #1530 from lkubik/multipleDependencyDeclaration
Remove multiple declaration of jboss-logging dependency
2015-08-12 13:00:54 +02:00
Stian Thorgersen fc7d4b072c Merge pull request #1526 from mstruk/WF10
KEYCLOAK-1745 Keycloak fails to start on Wildfly 10.0.0.Alpha6
2015-08-12 11:51:11 +02:00
Bill Burke 1801526f65 auth spi doco 2015-08-11 17:44:06 -04:00
Bill Burke 58e37b6a3f Merge pull request #1532 from patriot1burke/master
refactor requiredactions, start doco
2015-08-11 13:52:07 -04:00
Bill Burke 0bd9cad6ad Merge remote-tracking branch 'upstream/master' 2015-08-11 13:04:51 -04:00
Bill Burke bcc2c893ef refactor requiredactions, start doco 2015-08-11 13:04:40 -04:00
Lukas Kubik ac71bbd4b5 Remove multiple declaration of jboss-logging dependency from testsuit/tomcat6/pom.xml 2015-08-10 15:16:28 +02:00
Stian Thorgersen ae94b30066 Merge pull request #1529 from grange74/KEYCLOAK-1724
KEYCLOAK-1724: Removed second security-constraint as it stops Tomcat from redirecting to Keycloak
2015-08-10 15:11:01 +02:00
nick.grange b3c307affe Removed second security-constraint as it seems to stop Tomcat from
redirecting users that aren’t logged in to Keycloak. Also added missing
tag start.
2015-08-10 22:27:52 +10:00
Bill Burke 03d3f4229e Merge pull request #1528 from patriot1burke/master
auth spi javadoc
2015-08-09 15:51:55 -04:00
Bill Burke c627b83cc5 Merge remote-tracking branch 'upstream/master' 2015-08-09 15:06:37 -04:00
Bill Burke 5469db311d document auth spi 2015-08-09 15:06:24 -04:00
Bill Burke 75793a36cf Merge pull request #1527 from patriot1burke/master
binding custom flows
2015-08-07 21:26:46 -04:00
Bill Burke d68603e4ea Merge remote-tracking branch 'upstream/master' 2015-08-07 19:00:19 -04:00
Bill Burke 33e402e7be binding custom flows 2015-08-07 19:00:07 -04:00
Marko Strukelj 375dce14e6 KEYCLOAK-1745 Keycloak fails to start on Wildfly 10.0.0.Alpha6 2015-08-07 14:56:14 +02:00
Bill Burke 08ae3aee50 Merge pull request #1525 from patriot1burke/master
hotp and otp policy
2015-08-06 17:43:46 -04:00
Bill Burke 1ad7d4f1d8 Merge remote-tracking branch 'upstream/master' 2015-08-06 16:55:16 -04:00
Bill Burke f9e8f1f7b7 hotp 2015-08-06 16:54:59 -04:00
Marek Posolda fa0b45625c Merge pull request #1524 from mposolda/master
Minor clustering improvements
2015-08-06 18:05:40 +02:00
mposolda c5459b2614 Update docker-cluster to keycloak 1.4 2015-08-06 17:29:08 +02:00
mposolda 8232773d97 Log more details about possible error in UserInfoEndpoint 2015-08-06 17:28:35 +02:00
Bill Burke 53b752ccfe Merge remote-tracking branch 'upstream/master' 2015-08-05 20:40:02 -04:00
Bill Burke 07efba364e hotp 2015-08-05 20:39:47 -04:00
Vlastimil Elias 2e52d8ea7a KEYCLOAK-1731 - patched user attribute handling for
login-update-profile.ftl form. Relevant tests added. Tests for user
attributes handling from register.ftl also added.
2015-08-05 17:07:21 +02:00
Marek Posolda a46a7a42a1 Merge pull request #1522 from mposolda/master
Clustering docs and distribution fixes
2015-08-05 13:34:39 +02:00
mposolda 060a193b48 KEYCLOAK-1732 Fix standalone.xml in demo distribution 2015-08-05 13:33:11 +02:00
mposolda 06ee06ae50 Update clustering docs as infinispan is default provider now 2015-08-05 13:32:40 +02:00
Marek Posolda 17a5a9f033 Merge pull request #1521 from mposolda/master
KEYCLOAK-1595 Don't send 401 from AuthorizeClientUtil if public clien…
2015-08-04 16:01:17 +02:00
mposolda e27a754f5f KEYCLOAK-1595 Don't send 401 from AuthorizeClientUtil if public client sent client_id parameter together with Authorization: Negotiate 2015-08-04 15:22:03 +02:00
Bill Burke 61d5ba6a92 Merge pull request #1520 from patriot1burke/master
fix javascript flo bug
2015-08-04 09:04:18 -04:00
Bill Burke eff0054b4a fix bug 2015-08-04 09:03:49 -04:00
Marek Posolda 99cd6c7383 Merge pull request #1519 from mposolda/master
LDAP & migration fixes
2015-08-04 14:14:56 +02:00
mposolda 5087392162 KEYCLOAK-1725 Fix migration from 1.1.0.Final on Oracle 2015-08-04 13:21:09 +02:00
mposolda 7474a31d95 KEYCLOAK-1562 better error reporting when missing UUID on ldap user record 2015-08-04 13:21:09 +02:00
mposolda a0197bc9da KEYCLOAK-1728 NPE during LDAP sync when some LDAP user doesn't have username 2015-08-04 13:21:09 +02:00
Bill Burke 3b2e679aed Merge pull request #1518 from patriot1burke/master
auth flow editing
2015-08-03 19:26:11 -04:00
Bill Burke 75d69a1ec1 Merge pull request #1516 from pfiled/proxy-header-inject-bug
Populate the KEYCLOAK_USERNAME header
2015-08-03 18:59:32 -04:00
Bill Burke 930fc66ebf flow editing 2015-08-03 18:58:14 -04:00
Bill Burke 04d3d26cb1 refactor execution model 2015-08-03 09:52:56 -04:00
Bill Burke de940ccff9 auth flow editing 2015-08-02 19:03:33 -04:00
Daniel Pfile aedc54cc89 Populate the KEYCLOAK_USERNAME header, this fixes the authenticate and roles-allowed constraints in the proxy. 2015-07-30 16:24:16 -05:00
Stian Thorgersen de3a776b9a Merge pull request #1515 from stianst/master
KEYCLOAK-1702 KEYCLOAK-1703 Make Infinispan default user session and …
2015-07-29 13:07:09 +02:00
Stian Thorgersen 5d6cc61d4d KEYCLOAK-1702 KEYCLOAK-1703 Remove mem user session provider 2015-07-29 12:02:27 +02:00
Stian Thorgersen f32b38cdbc KEYCLOAK-1702 KEYCLOAK-1703 Make Infinispan default user session and cache provider 2015-07-29 10:08:15 +02:00
Stian Thorgersen f3bfb06dec Version bump 2015-07-28 10:20:40 +02:00
735 changed files with 52729 additions and 30358 deletions

No files matched your search

+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -17,6 +17,7 @@
*/
package org.keycloak.broker.provider;
import org.keycloak.models.ClientSessionModel;
import org.keycloak.models.IdentityProviderModel;
import java.util.HashMap;
@@ -43,6 +44,7 @@ public class BrokeredIdentityContext {
private IdentityProviderModel idpConfig;
private IdentityProvider idp;
private Map<String, Object> contextData = new HashMap<>();
private ClientSessionModel clientSession;
public BrokeredIdentityContext(String id) {
if (id == null) {
@@ -166,6 +168,14 @@ public class BrokeredIdentityContext {
this.lastName = lastName;
}
public ClientSessionModel getClientSession() {
return clientSession;
}
public void setClientSession(ClientSessionModel clientSession) {
this.clientSession = clientSession;
}
public void setName(String name) {
if (name != null) {
int i = name.lastIndexOf(' ');
@@ -0,0 +1,89 @@
package org.keycloak.broker.provider;
import org.keycloak.models.ClientModel;
import org.keycloak.models.IdentityProviderMapperModel;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.RealmModel;
import org.keycloak.models.RoleModel;
import org.keycloak.models.UserModel;
import org.keycloak.provider.ProviderConfigProperty;
import java.util.ArrayList;
import java.util.List;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public class HardcodedAttributeMapper extends AbstractIdentityProviderMapper {
public static final String ATTRIBUTE = "attribute";
public static final String ATTRIBUTE_VALUE = "attribute.value";
protected static final List<ProviderConfigProperty> configProperties = new ArrayList<ProviderConfigProperty>();
static {
ProviderConfigProperty property;
property = new ProviderConfigProperty();
property.setName(ATTRIBUTE);
property.setLabel("User Attribute");
property.setHelpText("Name of user attribute you want to hardcode");
property.setType(ProviderConfigProperty.STRING_TYPE);
configProperties.add(property);
property = new ProviderConfigProperty();
property.setName(ATTRIBUTE_VALUE);
property.setLabel("User Attribute Value");
property.setHelpText("Value you want to hardcode");
property.setType(ProviderConfigProperty.STRING_TYPE);
configProperties.add(property);
}
@Override
public List<ProviderConfigProperty> getConfigProperties() {
return configProperties;
}
@Override
public String getDisplayCategory() {
return "Attribute Importer";
}
@Override
public String getDisplayType() {
return "Hardcoded Attribute";
}
public static final String[] COMPATIBLE_PROVIDERS = {ANY_PROVIDER};
public static final String PROVIDER_ID = "hardcoded-attribute-idp-mapper";
@Override
public String getId() {
return PROVIDER_ID;
}
@Override
public String[] getCompatibleProviders() {
return COMPATIBLE_PROVIDERS;
}
@Override
public void importNewUser(KeycloakSession session, RealmModel realm, UserModel user, IdentityProviderMapperModel mapperModel, BrokeredIdentityContext context) {
String attribute = mapperModel.getConfig().get(ATTRIBUTE);
String attributeValue = mapperModel.getConfig().get(ATTRIBUTE_VALUE);
user.setSingleAttribute(attribute, attributeValue);
}
@Override
public void updateBrokeredUser(KeycloakSession session, RealmModel realm, UserModel user, IdentityProviderMapperModel mapperModel, BrokeredIdentityContext context) {
String attribute = mapperModel.getConfig().get(ATTRIBUTE);
String attributeValue = mapperModel.getConfig().get(ATTRIBUTE_VALUE);
user.setSingleAttribute(attribute, attributeValue);
}
@Override
public String getHelpText() {
return "When user is imported from provider, hardcode a value to a specific user attribute.";
}
}
@@ -0,0 +1,87 @@
package org.keycloak.broker.provider;
import org.keycloak.models.IdentityProviderMapperModel;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.RealmModel;
import org.keycloak.models.UserModel;
import org.keycloak.provider.ProviderConfigProperty;
import java.util.ArrayList;
import java.util.List;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public class HardcodedUserSessionAttributeMapper extends AbstractIdentityProviderMapper {
public static final String ATTRIBUTE = "attribute";
public static final String ATTRIBUTE_VALUE = "attribute.value";
protected static final List<ProviderConfigProperty> configProperties = new ArrayList<ProviderConfigProperty>();
static {
ProviderConfigProperty property;
property = new ProviderConfigProperty();
property.setName(ATTRIBUTE);
property.setLabel("User Session Attribute");
property.setHelpText("Name of user session attribute you want to hardcode");
property.setType(ProviderConfigProperty.STRING_TYPE);
configProperties.add(property);
property = new ProviderConfigProperty();
property.setName(ATTRIBUTE_VALUE);
property.setLabel("User Session Attribute Value");
property.setHelpText("Value you want to hardcode");
property.setType(ProviderConfigProperty.STRING_TYPE);
configProperties.add(property);
}
@Override
public List<ProviderConfigProperty> getConfigProperties() {
return configProperties;
}
@Override
public String getDisplayCategory() {
return "Attribute Importer";
}
@Override
public String getDisplayType() {
return "Hardcoded User Session Attribute";
}
public static final String[] COMPATIBLE_PROVIDERS = {ANY_PROVIDER};
public static final String PROVIDER_ID = "hardcoded-user-session-attribute-idp-mapper";
@Override
public String getId() {
return PROVIDER_ID;
}
@Override
public String[] getCompatibleProviders() {
return COMPATIBLE_PROVIDERS;
}
@Override
public void importNewUser(KeycloakSession session, RealmModel realm, UserModel user, IdentityProviderMapperModel mapperModel, BrokeredIdentityContext context) {
String attribute = mapperModel.getConfig().get(ATTRIBUTE);
String attributeValue = mapperModel.getConfig().get(ATTRIBUTE_VALUE);
context.getClientSession().setUserSessionNote(attribute, attributeValue);
}
@Override
public void updateBrokeredUser(KeycloakSession session, RealmModel realm, UserModel user, IdentityProviderMapperModel mapperModel, BrokeredIdentityContext context) {
String attribute = mapperModel.getConfig().get(ATTRIBUTE);
String attributeValue = mapperModel.getConfig().get(ATTRIBUTE_VALUE);
context.getClientSession().setUserSessionNote(attribute, attributeValue);
}
@Override
public String getHelpText() {
return "When user is imported from provider, hardcode a value to a specific user session attribute.";
}
}
@@ -1 +1,3 @@
org.keycloak.broker.provider.HardcodedRoleMapper
org.keycloak.broker.provider.HardcodedRoleMapper
org.keycloak.broker.provider.HardcodedAttributeMapper
org.keycloak.broker.provider.HardcodedUserSessionAttributeMapper
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -289,10 +289,9 @@ public class OIDCIdentityProvider extends AbstractOAuth2IdentityProvider<OIDCIde
}
JsonWebToken token = jws.readJsonContent(JsonWebToken.class);
String aud = token.getAudience();
String iss = token.getIssuer();
if (aud != null && !aud.equals(getConfig().getClientId())) {
if (!token.hasAudience(getConfig().getClientId())) {
throw new IdentityBrokerException("Wrong audience from token.");
}
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -98,7 +98,7 @@ public class UserAttributeMapper extends AbstractIdentityProviderMapper {
for (AttributeStatementType.ASTChoiceType choice : statement.getAttributes()) {
AttributeType attr = choice.getAttribute();
if (name != null && !name.equals(attr.getName())) continue;
if (friendly != null && !name.equals(attr.getFriendlyName())) continue;
if (friendly != null && !friendly.equals(attr.getFriendlyName())) continue;
List<Object> attributeValue = attr.getAttributeValue();
if (attributeValue == null || attributeValue.isEmpty()) return null;
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -231,7 +231,7 @@ public class LiquibaseJpaUpdaterProvider implements JpaUpdaterProvider {
}
private String getTable(String table, String defaultSchema) {
public static String getTable(String table, String defaultSchema) {
return defaultSchema != null ? defaultSchema + "." + table : table;
}
@@ -12,6 +12,7 @@ import liquibase.statement.SqlStatement;
import liquibase.statement.core.UpdateStatement;
import liquibase.structure.core.Schema;
import liquibase.structure.core.Table;
import org.keycloak.connections.jpa.updater.liquibase.LiquibaseJpaUpdaterProvider;
import org.keycloak.models.utils.KeycloakModelUtils;
import java.sql.Connection;
@@ -36,7 +37,7 @@ public class AddRealmCodeSecret implements CustomSqlChange {
String correctedTableName = database.correctObjectName("REALM", Table.class);
if (SnapshotGeneratorFactory.getInstance().has(new Table().setName(correctedTableName), database)) {
ResultSet resultSet = connection.createStatement().executeQuery("SELECT ID FROM REALM WHERE CODE_SECRET IS NULL");
ResultSet resultSet = connection.createStatement().executeQuery("SELECT ID FROM " + LiquibaseJpaUpdaterProvider.getTable(correctedTableName, database.getDefaultSchemaName()) + " WHERE CODE_SECRET IS NULL");
while (resultSet.next()) {
String id = resultSet.getString(1);
@@ -16,6 +16,7 @@ import liquibase.snapshot.SnapshotGeneratorFactory;
import liquibase.statement.SqlStatement;
import liquibase.structure.core.Table;
import org.jboss.logging.Logger;
import org.keycloak.connections.jpa.updater.liquibase.LiquibaseJpaUpdaterProvider;
import org.keycloak.connections.jpa.updater.liquibase.ThreadLocalSessionContext;
import org.keycloak.models.KeycloakSession;
import org.keycloak.services.DefaultKeycloakSessionFactory;
@@ -88,7 +89,7 @@ public abstract class CustomKeycloakTask implements CustomSqlChange {
try {
String correctedTableName = database.correctObjectName("REALM", Table.class);
if (SnapshotGeneratorFactory.getInstance().has(new Table().setName(correctedTableName), database)) {
ResultSet resultSet = connection.createStatement().executeQuery("SELECT ID FROM REALM");
ResultSet resultSet = connection.createStatement().executeQuery("SELECT ID FROM " + getTableName(correctedTableName));
try {
return (resultSet.next());
} finally {
@@ -108,4 +109,9 @@ public abstract class CustomKeycloakTask implements CustomSqlChange {
protected abstract void generateStatementsImpl() throws CustomChangeException;
protected abstract String getTaskId();
// get Table name for sql selects
protected String getTableName(String tableName) {
return LiquibaseJpaUpdaterProvider.getTable(tableName, database.getDefaultSchemaName());
}
}
@@ -11,6 +11,7 @@ import liquibase.statement.core.InsertStatement;
import liquibase.statement.core.UpdateStatement;
import liquibase.structure.core.Table;
import org.keycloak.Config;
import org.keycloak.connections.jpa.updater.liquibase.LiquibaseJpaUpdaterProvider;
import org.keycloak.migration.MigrationProvider;
import org.keycloak.models.AdminRoles;
import org.keycloak.models.ClaimMask;
@@ -49,7 +50,10 @@ public class JpaUpdate1_2_0_Beta1 extends CustomKeycloakTask {
String identityProviderTableName = database.correctObjectName("IDENTITY_PROVIDER", Table.class);
String idpConfigTableName = database.correctObjectName("IDENTITY_PROVIDER_CONFIG", Table.class);
PreparedStatement statement = jdbcConnection.prepareStatement("select RSC.NAME, VALUE, REALM_ID, UPDATE_PROFILE_ON_SOC_LOGIN from REALM_SOCIAL_CONFIG RSC,REALM where RSC.REALM_ID = REALM.ID ORDER BY RSC.REALM_ID, RSC.NAME");
String realmSocialConfigTable = getTableName("REALM_SOCIAL_CONFIG");
String realmTableName = getTableName("REALM");
PreparedStatement statement = jdbcConnection.prepareStatement("select RSC.NAME, VALUE, REALM_ID, UPDATE_PROFILE_ON_SOC_LOGIN from " + realmSocialConfigTable + " RSC," + realmTableName +
" REALM where RSC.REALM_ID = REALM.ID ORDER BY RSC.REALM_ID, RSC.NAME");
try {
ResultSet resultSet = statement.executeQuery();
try {
@@ -124,7 +128,7 @@ public class JpaUpdate1_2_0_Beta1 extends CustomKeycloakTask {
protected void convertSocialToIdFedUsers() throws SQLException, DatabaseException {
String federatedIdentityTableName = database.correctObjectName("FEDERATED_IDENTITY", Table.class);
PreparedStatement statement = jdbcConnection.prepareStatement("select REALM_ID, USER_ID, SOCIAL_PROVIDER, SOCIAL_USER_ID, SOCIAL_USERNAME from USER_SOCIAL_LINK");
PreparedStatement statement = jdbcConnection.prepareStatement("select REALM_ID, USER_ID, SOCIAL_PROVIDER, SOCIAL_USER_ID, SOCIAL_USERNAME from " + getTableName("USER_SOCIAL_LINK"));
try {
ResultSet resultSet = statement.executeQuery();
try {
@@ -170,7 +174,7 @@ public class JpaUpdate1_2_0_Beta1 extends CustomKeycloakTask {
String adminRoleId = getAdminRoleId();
String masterRealmId = Config.getAdminRealm();
PreparedStatement statement = jdbcConnection.prepareStatement("select NAME from REALM");
PreparedStatement statement = jdbcConnection.prepareStatement("select NAME from " + getTableName("REALM"));
try {
ResultSet resultSet = statement.executeQuery();
try {
@@ -178,7 +182,7 @@ public class JpaUpdate1_2_0_Beta1 extends CustomKeycloakTask {
String realmName = resultSet.getString("NAME");
String masterAdminAppName = realmName + "-realm";
PreparedStatement statement2 = jdbcConnection.prepareStatement("select ID from CLIENT where REALM_ID = ? AND NAME = ?");
PreparedStatement statement2 = jdbcConnection.prepareStatement("select ID from " + getTableName("CLIENT") + " where REALM_ID = ? AND NAME = ?");
statement2.setString(1, masterRealmId);
statement2.setString(2, masterAdminAppName);
@@ -209,7 +213,7 @@ public class JpaUpdate1_2_0_Beta1 extends CustomKeycloakTask {
}
private String getAdminRoleId() throws SQLException, DatabaseException {
PreparedStatement statement = jdbcConnection.prepareStatement("select ID from KEYCLOAK_ROLE where NAME = ? AND REALM = ?");
PreparedStatement statement = jdbcConnection.prepareStatement("select ID from " + getTableName("KEYCLOAK_ROLE") + " where NAME = ? AND REALM = ?");
statement.setString(1, AdminRoles.ADMIN);
statement.setString(2, Config.getAdminRealm());
@@ -231,7 +235,8 @@ public class JpaUpdate1_2_0_Beta1 extends CustomKeycloakTask {
protected void addNewRealmAdminRoles() throws SQLException, DatabaseException {
PreparedStatement statement = jdbcConnection.prepareStatement("select CLIENT.ID REALM_ADMIN_APP_ID, CLIENT.REALM_ID REALM_ID, KEYCLOAK_ROLE.ID ADMIN_ROLE_ID from CLIENT,KEYCLOAK_ROLE where KEYCLOAK_ROLE.APPLICATION = CLIENT.ID AND CLIENT.NAME = 'realm-management' AND KEYCLOAK_ROLE.NAME = ?");
PreparedStatement statement = jdbcConnection.prepareStatement("select CLIENT.ID REALM_ADMIN_APP_ID, CLIENT.REALM_ID REALM_ID, KEYCLOAK_ROLE.ID ADMIN_ROLE_ID from " +
getTableName("CLIENT") + " CLIENT," + getTableName("KEYCLOAK_ROLE") + " KEYCLOAK_ROLE where KEYCLOAK_ROLE.APPLICATION = CLIENT.ID AND CLIENT.NAME = 'realm-management' AND KEYCLOAK_ROLE.NAME = ?");
statement.setString(1, AdminRoles.REALM_ADMIN);
try {
@@ -280,7 +285,7 @@ public class JpaUpdate1_2_0_Beta1 extends CustomKeycloakTask {
String protocolMapperTableName = database.correctObjectName("PROTOCOL_MAPPER", Table.class);
String protocolMapperCfgTableName = database.correctObjectName("PROTOCOL_MAPPER_CONFIG", Table.class);
PreparedStatement statement = jdbcConnection.prepareStatement("select ID, NAME, ALLOWED_CLAIMS_MASK from CLIENT");
PreparedStatement statement = jdbcConnection.prepareStatement("select ID, NAME, ALLOWED_CLAIMS_MASK from " + getTableName("CLIENT"));
try {
ResultSet resultSet = statement.executeQuery();
@@ -293,7 +298,7 @@ public class JpaUpdate1_2_0_Beta1 extends CustomKeycloakTask {
}
Object acmObj = resultSet.getObject("ALLOWED_CLAIMS_MASK");
long mask = (acmObj != null) ? (Long) acmObj : ClaimMask.ALL;
long mask = (acmObj != null) ? ((Number) acmObj).longValue() : ClaimMask.ALL;
MigrationProvider migrationProvider = this.kcSession.getProvider(MigrationProvider.class);
List<ProtocolMapperRepresentation> protocolMappers = migrationProvider.getMappersForClaimMask(mask);
@@ -19,7 +19,7 @@ public class JpaUpdate1_2_0_CR1 extends CustomKeycloakTask {
try {
String trueValue = DataTypeFactory.getInstance().getTrueBooleanValue(database);
PreparedStatement statement = jdbcConnection.prepareStatement("select CLIENT.REALM_ID, CLIENT.ID CLIENT_ID from CLIENT where CLIENT.CONSENT_REQUIRED = " + trueValue);
PreparedStatement statement = jdbcConnection.prepareStatement("select CLIENT.REALM_ID, CLIENT.ID CLIENT_ID from " + getTableName("CLIENT") + " CLIENT where CLIENT.CONSENT_REQUIRED = " + trueValue);
try {
ResultSet resultSet = statement.executeQuery();
@@ -20,7 +20,7 @@ public class JpaUpdate1_4_0_Final extends CustomKeycloakTask {
String userAttributeTableName = database.correctObjectName("USER_ATTRIBUTE", Table.class);
try {
PreparedStatement statement = jdbcConnection.prepareStatement("select NAME, USER_ID from USER_ATTRIBUTE");
PreparedStatement statement = jdbcConnection.prepareStatement("select NAME, USER_ID from " + getTableName("USER_ATTRIBUTE"));
try {
ResultSet resultSet = statement.executeQuery();
@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
<changeSet author="bburke@redhat.com" id="1.5.0">
<delete tableName="CLIENT_SESSION_AUTH_STATUS"/>
<delete tableName="CLIENT_SESSION_ROLE"/>
<delete tableName="CLIENT_SESSION_PROT_MAPPER"/>
<delete tableName="CLIENT_SESSION_NOTE"/>
<delete tableName="CLIENT_SESSION"/>
<delete tableName="USER_SESSION_NOTE"/>
<delete tableName="USER_SESSION"/>
<dropDefaultValue tableName="AUTHENTICATION_EXECUTION" columnName="USER_SETUP_ALLOWED" />
<dropColumn tableName="AUTHENTICATION_EXECUTION" columnName="USER_SETUP_ALLOWED"/>
<addColumn tableName="CREDENTIAL">
<column name="COUNTER" type="INT" defaultValueNumeric="0">
<constraints nullable="true"/>
</column>
<column name="DIGITS" type="INT" defaultValueNumeric="6">
<constraints nullable="true"/>
</column>
<column name="PERIOD" type="INT" defaultValueNumeric="30">
<constraints nullable="true"/>
</column>
<column name="ALGORITHM" type="VARCHAR(36)" defaultValue="HmacSHA1">
<constraints nullable="true"/>
</column>
</addColumn>
<addColumn tableName="REALM">
<column name="OTP_POLICY_COUNTER" type="INT" defaultValueNumeric="0">
<constraints nullable="true"/>
</column>
<column name="OTP_POLICY_WINDOW" type="INT" defaultValueNumeric="1">
<constraints nullable="true"/>
</column>
<column name="OTP_POLICY_PERIOD" type="INT" defaultValueNumeric="30">
<constraints nullable="true"/>
</column>
<column name="OTP_POLICY_DIGITS" type="INT" defaultValueNumeric="6">
<constraints nullable="true"/>
</column>
<column name="OTP_POLICY_ALG" type="VARCHAR(36)" defaultValue="HmacSHA1">
<constraints nullable="true"/>
</column>
<column name="OTP_POLICY_TYPE" type="VARCHAR(36)" defaultValue="totp">
<constraints nullable="true"/>
</column>
<column name="BROWSER_FLOW" type="VARCHAR(36)">
<constraints nullable="true"/>
</column>
<column name="REGISTRATION_FLOW" type="VARCHAR(36)">
<constraints nullable="true"/>
</column>
<column name="DIRECT_GRANT_FLOW" type="VARCHAR(36)">
<constraints nullable="true"/>
</column>
<column name="RESET_CREDENTIALS_FLOW" type="VARCHAR(36)">
<constraints nullable="true"/>
</column>
<column name="CLIENT_AUTH_FLOW" type="VARCHAR(36)">
<constraints nullable="true"/>
</column>
</addColumn>
<addColumn tableName="CLIENT">
<column name="CLIENT_AUTHENTICATOR_TYPE" type="VARCHAR(255)">
<constraints nullable="true"/>
</column>
</addColumn>
<!-- Sybase specific hacks -->
<modifySql dbms="sybase">
<regExpReplace replace=".*(SET DEFAULT NULL)" with="SELECT 1" />
</modifySql>
</changeSet>
</databaseChangeLog>
@@ -8,4 +8,5 @@
<include file="META-INF/jpa-changelog-1.2.0.Final.xml"/>
<include file="META-INF/jpa-changelog-1.3.0.xml"/>
<include file="META-INF/jpa-changelog-1.4.0.xml"/>
<include file="META-INF/jpa-changelog-1.5.0.xml"/>
</databaseChangeLog>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -4,6 +4,7 @@ import org.hibernate.ejb.AvailableSettings;
import org.jboss.logging.Logger;
import org.keycloak.Config;
import org.keycloak.connections.jpa.updater.JpaUpdaterProvider;
import org.keycloak.connections.jpa.util.JpaUtils;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.KeycloakSessionFactory;
@@ -108,7 +109,7 @@ public class DefaultJpaConnectionProviderFactory implements JpaConnectionProvide
String schema = config.get("schema");
if (schema != null) {
properties.put("hibernate.default_schema", schema);
properties.put(JpaUtils.HIBERNATE_DEFAULT_SCHEMA, schema);
}
if (databaseSchema != null) {
@@ -12,7 +12,7 @@ public interface JpaUpdaterProvider extends Provider {
public String FIRST_VERSION = "1.0.0.Final";
public String LAST_VERSION = "1.4.0";
public String LAST_VERSION = "1.5.0";
public String getCurrentVersionSql(String defaultSchema);
@@ -0,0 +1,16 @@
package org.keycloak.connections.jpa.util;
import javax.persistence.EntityManager;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class JpaUtils {
public static final String HIBERNATE_DEFAULT_SCHEMA = "hibernate.default_schema";
public static String getTableNameForNativeQuery(String tableName, EntityManager em) {
String schema = (String) em.getEntityManagerFactory().getProperties().get(HIBERNATE_DEFAULT_SCHEMA);
return (schema==null) ? tableName : schema + "." + tableName;
}
}
@@ -30,17 +30,6 @@
<class>org.keycloak.models.jpa.entities.AuthenticatorConfigEntity</class>
<class>org.keycloak.models.jpa.entities.RequiredActionProviderEntity</class>
<!-- JpaUserSessionProvider -->
<class>org.keycloak.models.sessions.jpa.entities.ClientSessionEntity</class>
<class>org.keycloak.models.sessions.jpa.entities.ClientSessionRoleEntity</class>
<class>org.keycloak.models.sessions.jpa.entities.ClientSessionAuthStatusEntity</class>
<class>org.keycloak.models.sessions.jpa.entities.ClientSessionProtocolMapperEntity</class>
<class>org.keycloak.models.sessions.jpa.entities.ClientSessionNoteEntity</class>
<class>org.keycloak.models.sessions.jpa.entities.ClientUserSessionNoteEntity</class>
<class>org.keycloak.models.sessions.jpa.entities.UserSessionNoteEntity</class>
<class>org.keycloak.models.sessions.jpa.entities.UserSessionEntity</class>
<class>org.keycloak.models.sessions.jpa.entities.UsernameLoginFailureEntity</class>
<!-- JpaAuditProviders -->
<class>org.keycloak.events.jpa.EventEntity</class>
<class>org.keycloak.events.jpa.AdminEventEntity</class>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -27,26 +27,23 @@ import java.util.Map;
*/
public class DefaultMongoConnectionFactoryProvider implements MongoConnectionProviderFactory {
// TODO Make configurable
// TODO Make it dynamic
private String[] entities = new String[]{
"org.keycloak.models.mongo.keycloak.entities.MongoRealmEntity",
"org.keycloak.models.mongo.keycloak.entities.MongoUserEntity",
"org.keycloak.models.mongo.keycloak.entities.MongoRoleEntity",
"org.keycloak.models.mongo.keycloak.entities.MongoClientEntity",
"org.keycloak.models.mongo.keycloak.entities.MongoUserConsentEntity",
"org.keycloak.models.mongo.keycloak.entities.MongoMigrationModelEntity",
"org.keycloak.models.entities.IdentityProviderEntity",
"org.keycloak.models.entities.ClientIdentityProviderMappingEntity",
"org.keycloak.models.entities.RequiredCredentialEntity",
"org.keycloak.models.entities.CredentialEntity",
"org.keycloak.models.entities.FederatedIdentityEntity",
"org.keycloak.models.mongo.keycloak.entities.MongoClientEntity",
"org.keycloak.models.sessions.mongo.entities.MongoUsernameLoginFailureEntity",
"org.keycloak.models.sessions.mongo.entities.MongoUserSessionEntity",
"org.keycloak.models.sessions.mongo.entities.MongoClientSessionEntity",
"org.keycloak.models.entities.UserFederationProviderEntity",
"org.keycloak.models.entities.UserFederationMapperEntity",
"org.keycloak.models.entities.ProtocolMapperEntity",
"org.keycloak.models.entities.IdentityProviderMapperEntity",
"org.keycloak.models.mongo.keycloak.entities.MongoUserConsentEntity",
"org.keycloak.models.mongo.keycloak.entities.MongoMigrationModelEntity",
"org.keycloak.models.entities.AuthenticationExecutionEntity",
"org.keycloak.models.entities.AuthenticationFlowEntity",
"org.keycloak.models.entities.AuthenticatorConfigEntity",
+1 -1
View File
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
</parent>
<name>Connections Parent</name>
<description/>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -16,7 +16,7 @@ public class AbstractOAuthClient {
private final AtomicLong counter = new AtomicLong();
protected String clientId;
protected Map<String, String> credentials;
protected Map<String, Object> credentials;
protected String authUrl;
protected String tokenUrl;
protected RelativeUrlsUsed relativeUrlsUsed;
@@ -37,11 +37,11 @@ public class AbstractOAuthClient {
this.clientId = clientId;
}
public Map<String, String> getCredentials() {
public Map<String, Object> getCredentials() {
return credentials;
}
public void setCredentials(Map<String, String> credentials) {
public void setCredentials(Map<String, Object> credentials) {
this.credentials = credentials;
}
@@ -31,6 +31,13 @@ public interface OAuth2Constants {
String CLIENT_CREDENTIALS = "client_credentials";
// https://tools.ietf.org/html/draft-ietf-oauth-assertions-01#page-5
String CLIENT_ASSERTION_TYPE = "client_assertion_type";
String CLIENT_ASSERTION = "client_assertion";
// https://tools.ietf.org/html/draft-jones-oauth-jwt-bearer-03#section-2.2
String CLIENT_ASSERTION_TYPE_JWT = "urn:ietf:params:oauth:client-assertion-type:jwt-bearer";
}
@@ -1,6 +1,7 @@
package org.keycloak;
import org.codehaus.jackson.annotate.JsonProperty;
import org.keycloak.util.Time;
import java.io.IOException;
import java.io.InputStream;
@@ -28,6 +29,9 @@ public class Version {
VERSION = props.getProperty("version");
BUILD_TIME = props.getProperty("build-time");
RESOURCES_VERSION = VERSION.toLowerCase();
if (RESOURCES_VERSION.endsWith("-snapshot")) {
RESOURCES_VERSION = RESOURCES_VERSION.replace("-snapshot", "-" + Time.currentTime());
}
} catch (IOException e) {
VERSION=UNKNOWN;
BUILD_TIME=UNKNOWN;
@@ -0,0 +1,30 @@
package org.keycloak.json;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.DeserializationContext;
import org.codehaus.jackson.map.JsonDeserializer;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
public class StringOrArrayDeserializer extends JsonDeserializer<Object> {
@Override
public Object deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
JsonNode jsonNode = jsonParser.readValueAsTree();
if (jsonNode.isArray()) {
ArrayList<String> a = new ArrayList<>(1);
Iterator<JsonNode> itr = jsonNode.iterator();
while (itr.hasNext()) {
a.add(itr.next().getTextValue());
}
return a.toArray(new String[a.size()]);
} else {
return new String[] { jsonNode.getTextValue() };
}
}
}
@@ -0,0 +1,25 @@
package org.keycloak.json;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.SerializerProvider;
import java.io.IOException;
public class StringOrArraySerializer extends JsonSerializer<Object> {
@Override
public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
String[] array = (String[]) o;
if (array == null) {
jsonGenerator.writeNull();
} else if (array.length == 1) {
jsonGenerator.writeString(array[0]);
} else {
jsonGenerator.writeStartArray();
for (String s : array) {
jsonGenerator.writeString(s);
}
jsonGenerator.writeEndArray();
}
}
}
@@ -163,11 +163,6 @@ public class AccessToken extends IDToken {
return (AccessToken) super.issuer(issuer);
}
@Override
public AccessToken audience(String audience) {
return (AccessToken) super.audience(audience);
}
@Override
public AccessToken subject(String subject) {
return (AccessToken) super.subject(subject);
@@ -1,12 +1,6 @@
package org.keycloak.representations;
import org.codehaus.jackson.annotate.JsonAnyGetter;
import org.codehaus.jackson.annotate.JsonAnySetter;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.annotate.JsonUnwrapped;
import java.util.HashMap;
import java.util.Map;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
@@ -4,6 +4,10 @@ import org.codehaus.jackson.annotate.JsonAnyGetter;
import org.codehaus.jackson.annotate.JsonAnySetter;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.keycloak.json.StringOrArrayDeserializer;
import org.keycloak.json.StringOrArraySerializer;
import org.keycloak.util.Time;
import java.io.Serializable;
@@ -26,14 +30,16 @@ public class JsonWebToken implements Serializable {
@JsonProperty("iss")
protected String issuer;
@JsonProperty("aud")
protected String audience;
@JsonSerialize(using = StringOrArraySerializer.class)
@JsonDeserialize(using = StringOrArrayDeserializer.class)
protected String[] audience;
@JsonProperty("sub")
protected String subject;
@JsonProperty("typ")
protected String type;
@JsonProperty("azp")
public String issuedFor;
protected Map<String, Object> otherClaims = new HashMap<String, Object>();
protected Map<String, Object> otherClaims = new HashMap<>();
public String getId() {
return id;
@@ -72,7 +78,6 @@ public class JsonWebToken implements Serializable {
@JsonIgnore
public boolean isNotBefore() {
return Time.currentTime() >= notBefore;
}
/**
@@ -113,12 +118,21 @@ public class JsonWebToken implements Serializable {
return this;
}
public String getAudience() {
@JsonIgnore
public String[] getAudience() {
return audience;
}
public JsonWebToken audience(String audience) {
public boolean hasAudience(String audience) {
for (String a : this.audience) {
if (a.equals(audience)) {
return true;
}
}
return false;
}
public JsonWebToken audience(String... audience) {
this.audience = audience;
return this;
}
@@ -39,7 +39,7 @@ public class BaseAdapterConfig extends BaseRealmConfig {
@JsonProperty("public-client")
protected boolean publicClient;
@JsonProperty("credentials")
protected Map<String, String> credentials = new HashMap<String, String>();
protected Map<String, Object> credentials = new HashMap<>();
public boolean isUseResourceRoleMappings() {
@@ -114,11 +114,11 @@ public class BaseAdapterConfig extends BaseRealmConfig {
this.enableBasicAuth = enableBasicAuth;
}
public Map<String, String> getCredentials() {
public Map<String, Object> getCredentials() {
return credentials;
}
public void setCredentials(Map<String, String> credentials) {
public void setCredentials(Map<String, Object> credentials) {
this.credentials = credentials;
}
@@ -0,0 +1,30 @@
package org.keycloak.representations.idm;
/**
* PEM values of key and certificate
*
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class CertificateRepresentation {
protected String privateKey;
protected String certificate;
public String getPrivateKey() {
return privateKey;
}
public void setPrivateKey(String privateKey) {
this.privateKey = privateKey;
}
public String getCertificate() {
return certificate;
}
public void setCertificate(String certificate) {
this.certificate = certificate;
}
}
@@ -15,6 +15,7 @@ public class ClientRepresentation {
protected String baseUrl;
protected Boolean surrogateAuthRequired;
protected Boolean enabled;
protected String clientAuthenticatorType;
protected String secret;
protected String[] defaultRoles;
protected List<String> redirectUris;
@@ -89,6 +90,14 @@ public class ClientRepresentation {
this.baseUrl = baseUrl;
}
public String getClientAuthenticatorType() {
return clientAuthenticatorType;
}
public void setClientAuthenticatorType(String clientAuthenticatorType) {
this.clientAuthenticatorType = clientAuthenticatorType;
}
public String getSecret() {
return secret;
}
@@ -9,6 +9,7 @@ public class CredentialRepresentation {
public static final String PASSWORD = "password";
public static final String PASSWORD_TOKEN = "password-token";
public static final String TOTP = "totp";
public static final String HOTP = "hotp";
public static final String CLIENT_CERT = "cert";
public static final String KERBEROS = "kerberos";
@@ -22,6 +23,11 @@ public class CredentialRepresentation {
protected String hashedSaltedValue;
protected String salt;
protected Integer hashIterations;
protected Integer counter;
private String algorithm;
private Integer digits;
private Integer period;
// only used when updating a credential. Might set required action
protected boolean temporary;
@@ -80,4 +86,36 @@ public class CredentialRepresentation {
public void setTemporary(boolean temporary) {
this.temporary = temporary;
}
public Integer getCounter() {
return counter;
}
public void setCounter(Integer counter) {
this.counter = counter;
}
public String getAlgorithm() {
return algorithm;
}
public void setAlgorithm(String algorithm) {
this.algorithm = algorithm;
}
public Integer getDigits() {
return digits;
}
public void setDigits(Integer digits) {
this.digits = digits;
}
public Integer getPeriod() {
return period;
}
public void setPeriod(Integer period) {
this.period = period;
}
}
@@ -49,6 +49,13 @@ public class RealmRepresentation {
@Deprecated
protected Set<String> requiredCredentials;
protected String passwordPolicy;
protected String otpPolicyType;
protected String otpPolicyAlgorithm;
protected Integer otpPolicyInitialCounter;
protected Integer otpPolicyDigits;
protected Integer otpPolicyLookAheadWindow;
protected Integer otpPolicyPeriod;
protected List<UserRepresentation> users;
protected List<ScopeMappingRepresentation> scopeMappings;
protected Map<String, List<ScopeMappingRepresentation>> clientScopeMappings;
@@ -80,6 +87,11 @@ public class RealmRepresentation {
protected List<AuthenticationFlowRepresentation> authenticationFlows;
protected List<AuthenticatorConfigRepresentation> authenticatorConfig;
protected List<RequiredActionProviderRepresentation> requiredActions;
protected String browserFlow;
protected String registrationFlow;
protected String directGrantFlow;
protected String resetCredentialsFlow;
protected String clientAuthenticationFlow;
@Deprecated
protected Boolean social;
@@ -653,4 +665,92 @@ public class RealmRepresentation {
public void setRequiredActions(List<RequiredActionProviderRepresentation> requiredActions) {
this.requiredActions = requiredActions;
}
public String getOtpPolicyType() {
return otpPolicyType;
}
public void setOtpPolicyType(String otpPolicyType) {
this.otpPolicyType = otpPolicyType;
}
public String getOtpPolicyAlgorithm() {
return otpPolicyAlgorithm;
}
public void setOtpPolicyAlgorithm(String otpPolicyAlgorithm) {
this.otpPolicyAlgorithm = otpPolicyAlgorithm;
}
public Integer getOtpPolicyInitialCounter() {
return otpPolicyInitialCounter;
}
public void setOtpPolicyInitialCounter(Integer otpPolicyInitialCounter) {
this.otpPolicyInitialCounter = otpPolicyInitialCounter;
}
public Integer getOtpPolicyDigits() {
return otpPolicyDigits;
}
public void setOtpPolicyDigits(Integer otpPolicyDigits) {
this.otpPolicyDigits = otpPolicyDigits;
}
public Integer getOtpPolicyLookAheadWindow() {
return otpPolicyLookAheadWindow;
}
public void setOtpPolicyLookAheadWindow(Integer otpPolicyLookAheadWindow) {
this.otpPolicyLookAheadWindow = otpPolicyLookAheadWindow;
}
public Integer getOtpPolicyPeriod() {
return otpPolicyPeriod;
}
public void setOtpPolicyPeriod(Integer otpPolicyPeriod) {
this.otpPolicyPeriod = otpPolicyPeriod;
}
public String getBrowserFlow() {
return browserFlow;
}
public void setBrowserFlow(String browserFlow) {
this.browserFlow = browserFlow;
}
public String getRegistrationFlow() {
return registrationFlow;
}
public void setRegistrationFlow(String registrationFlow) {
this.registrationFlow = registrationFlow;
}
public String getDirectGrantFlow() {
return directGrantFlow;
}
public void setDirectGrantFlow(String directGrantFlow) {
this.directGrantFlow = directGrantFlow;
}
public String getResetCredentialsFlow() {
return resetCredentialsFlow;
}
public void setResetCredentialsFlow(String resetCredentialsFlow) {
this.resetCredentialsFlow = resetCredentialsFlow;
}
public String getClientAuthenticationFlow() {
return clientAuthenticationFlow;
}
public void setClientAuthenticationFlow(String clientAuthenticationFlow) {
this.clientAuthenticationFlow = clientAuthenticationFlow;
}
}
@@ -150,15 +150,6 @@ public class UserRepresentation {
this.credentials = credentials;
}
public UserRepresentation credential(String type, String value) {
if (this.credentials == null) credentials = new ArrayList<CredentialRepresentation>();
CredentialRepresentation cred = new CredentialRepresentation();
cred.setType(type);
cred.setValue(value);
credentials.add(cred);
return this;
}
public List<String> getRequiredActions() {
return requiredActions;
}
@@ -3,7 +3,6 @@ package org.keycloak.util;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.codehaus.jackson.type.TypeReference;
import java.io.IOException;
import java.io.InputStream;
@@ -4,6 +4,7 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.security.KeyStore;
import java.security.PrivateKey;
import org.keycloak.constants.GenericConstants;
@@ -12,6 +13,14 @@ import org.keycloak.constants.GenericConstants;
* @version $Revision: 1 $
*/
public class KeystoreUtil {
static {
BouncyIntegration.init();
}
public enum KeystoreFormat {
JKS,
PKCS12
}
public static KeyStore loadKeyStore(String filename, String password) throws Exception {
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
@@ -22,4 +31,26 @@ public class KeystoreUtil {
trustStream.close();
return trustStore;
}
public static PrivateKey loadPrivateKeyFromKeystore(String keystoreFile, String storePassword, String keyPassword, String keyAlias, KeystoreFormat format) {
InputStream stream = FindFile.findFile(keystoreFile);
try {
KeyStore keyStore = null;
if (format == KeystoreFormat.JKS) {
keyStore = KeyStore.getInstance(format.toString());
} else {
keyStore = KeyStore.getInstance(format.toString(), "BC");
}
keyStore.load(stream, storePassword.toCharArray());
PrivateKey key = (PrivateKey) keyStore.getKey(keyAlias, keyPassword.toCharArray());
if (key == null) {
throw new RuntimeException("Couldn't load key with alias '" + keyAlias + "' from keystore");
}
return key;
} catch (Exception e) {
throw new RuntimeException("Failed to load private key: " + e.getMessage(), e);
}
}
}
@@ -19,9 +19,12 @@ public class HmacTest {
@Test
public void testHmacSignatures() throws Exception {
SecretKey secret = new SecretKeySpec(UUID.randomUUID().toString().getBytes(), "HmacSHA256");
String encoded = new JWSBuilder().content("hello world".getBytes())
String encoded = new JWSBuilder().content("12345678901234567890".getBytes())
.hmac256(secret);
System.out.println("length: " + encoded.length());
JWSInput input = new JWSInput(encoded);
Assert.assertTrue(HMACProvider.verify(input, secret));
}
}
@@ -0,0 +1,44 @@
package org.keycloak.jose;
import org.junit.Test;
import org.keycloak.representations.JsonWebToken;
import org.keycloak.util.JsonSerialization;
import java.io.IOException;
import static org.junit.Assert.*;
/**
* Created by st on 20.08.15.
*/
public class JsonWebTokenTest {
@Test
public void testAudSingle() throws IOException {
String single = "{ \"aud\": \"test\" }";
JsonWebToken s = JsonSerialization.readValue(single, JsonWebToken.class);
assertArrayEquals(new String[] { "test" }, s.getAudience());
}
@Test
public void testAudArray() throws IOException {
String single = "{ \"aud\": [\"test\"] }";
JsonWebToken s = JsonSerialization.readValue(single, JsonWebToken.class);
assertArrayEquals(new String[]{"test"}, s.getAudience());
}
@Test
public void test() throws IOException {
JsonWebToken jsonWebToken = new JsonWebToken();
jsonWebToken.audience("test");
assertTrue(JsonSerialization.writeValueAsPrettyString(jsonWebToken).contains("\"aud\" : \"test\""));
}
@Test
public void testArray() throws IOException {
JsonWebToken jsonWebToken = new JsonWebToken();
jsonWebToken.audience("test", "test2");
assertTrue(JsonSerialization.writeValueAsPrettyString(jsonWebToken).contains("\"aud\" : [ \"test\", \"test2\" ]"));
}
}
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
</parent>
<modelVersion>4.0.0</modelVersion>
+2 -14
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -40,18 +40,6 @@
<groupId>org.keycloak</groupId>
<artifactId>keycloak-model-file</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-model-sessions-mem</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-model-sessions-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-model-sessions-mongo</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-model-sessions-infinispan</artifactId>
@@ -181,4 +169,4 @@
</dependency>
</dependencies>
</project>
</project>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
@@ -8,7 +8,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<name>Keycloak AS7 / JBoss EAP 6 Adapter Distros</name>
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
<name>Keycloak OSGI Features</name>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
<name>Keycloak OSGI JAAS Realm Configuration</name>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<name>Keycloak OSGI Integration</name>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
+1 -1
View File
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
+1 -1
View File
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<name>Keycloak Wildfly 8 Adapter</name>
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
@@ -8,7 +8,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
+1 -1
View File
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<name>Keycloak Wildfly 9 Adapter</name>
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
@@ -8,7 +8,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -8,6 +8,7 @@
exclude-result-prefixes="xalan j ds k sec">
<xsl:param name="config"/>
<xsl:variable name="inf" select="'urn:jboss:domain:infinispan:'"/>
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" xalan:indent-amount="4" standalone="no"/>
<xsl:strip-space elements="*"/>
@@ -61,6 +62,18 @@
</xsl:copy>
</xsl:template>
<xsl:template match="//*[local-name()='subsystem' and starts-with(namespace-uri(), $inf)]">
<xsl:copy>
<cache-container name="keycloak" jndi-name="infinispan/Keycloak">
<local-cache name="realms"/>
<local-cache name="users"/>
<local-cache name="sessions"/>
<local-cache name="loginFailures"/>
</cache-container>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
+258
View File
@@ -0,0 +1,258 @@
<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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.keycloak</groupId>
<artifactId>distribution-pom</artifactId>
<version>1.5.1.Final</version>
</parent>
<artifactId>keycloak-dist-downloads</artifactId>
<packaging>pom</packaging>
<name>Keycloak Release Downloads</name>
<description/>
<dependencies>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>server-downloads</id>
<phase>install</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-server-dist</artifactId>
<type>zip</type>
<destFileName>keycloak-${project.version}.zip</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-server-dist</artifactId>
<type>tar.gz</type>
<destFileName>keycloak-${project.version}.tar.gz</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-demo-dist</artifactId>
<type>zip</type>
<destFileName>keycloak-demo-${project.version}.zip</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-demo-dist</artifactId>
<type>tar.gz</type>
<destFileName>keycloak-demo-${project.version}.tar.gz</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-server-overlay</artifactId>
<type>zip</type>
<destFileName>keycloak-overlay-${project.version}.zip</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-server-overlay</artifactId>
<type>tar.gz</type>
<destFileName>keycloak-overlay-${project.version}.tar.gz</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-server-overlay-eap6</artifactId>
<type>zip</type>
<destFileName>keycloak-overlay-eap6-${project.version}.zip</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-server-overlay-eap6</artifactId>
<type>tar.gz</type>
<destFileName>keycloak-overlay-eap6-${project.version}.tar.gz</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-proxy-dist</artifactId>
<type>zip</type>
<destFileName>keycloak-proxy-${project.version}.zip</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-docs-dist</artifactId>
<type>zip</type>
<destFileName>keycloak-docs-${project.version}.zip</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-examples-dist</artifactId>
<type>zip</type>
<destFileName>keycloak-examples-${project.version}.zip</destFileName>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-src-dist</artifactId>
<type>zip</type>
<destFileName>keycloak-src-${project.version}.zip</destFileName>
</artifactItem>
</artifactItems>
<outputDirectory>target/${project.version}</outputDirectory>
</configuration>
</execution>
<execution>
<id>adapter-downloads</id>
<phase>install</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-as7-adapter-dist</artifactId>
<type>zip</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-as7-adapter-dist</artifactId>
<type>tar.gz</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-eap6-adapter-dist</artifactId>
<type>zip</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-eap6-adapter-dist</artifactId>
<type>tar.gz</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-jetty81-adapter-dist</artifactId>
<type>zip</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-jetty81-adapter-dist</artifactId>
<type>tar.gz</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-jetty91-adapter-dist</artifactId>
<type>zip</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-jetty91-adapter-dist</artifactId>
<type>tar.gz</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-jetty92-adapter-dist</artifactId>
<type>zip</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-jetty92-adapter-dist</artifactId>
<type>tar.gz</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-js-adapter-dist</artifactId>
<type>zip</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-js-adapter-dist</artifactId>
<type>tar.gz</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-tomcat6-adapter-dist</artifactId>
<type>zip</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-tomcat6-adapter-dist</artifactId>
<type>tar.gz</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-tomcat7-adapter-dist</artifactId>
<type>zip</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-tomcat7-adapter-dist</artifactId>
<type>tar.gz</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-tomcat8-adapter-dist</artifactId>
<type>zip</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-tomcat8-adapter-dist</artifactId>
<type>tar.gz</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-wf8-adapter-dist</artifactId>
<type>zip</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-wf8-adapter-dist</artifactId>
<type>tar.gz</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-wf9-adapter-dist</artifactId>
<type>zip</type>
</artifactItem>
<artifactItem>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-wf9-adapter-dist</artifactId>
<type>tar.gz</type>
</artifactItem>
</artifactItems>
<outputDirectory>target/${project.version}/adapters</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -20,7 +20,7 @@
<parent>
<groupId>org.keycloak</groupId>
<artifactId>feature-packs-parent</artifactId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
</parent>
<modelVersion>4.0.0</modelVersion>
+1 -1
View File
@@ -3,7 +3,7 @@
<parent>
<artifactId>distribution-pom</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../pom.xml</relativePath>
</parent>
<name>Feature Pack Builds</name>
@@ -20,7 +20,7 @@
<parent>
<groupId>org.keycloak</groupId>
<artifactId>feature-packs-parent</artifactId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -22,21 +22,6 @@
"provider": "jpa"
},
"userSessions": {
"provider" : "mem"
},
"realmCache": {
"provider": "mem"
},
"userCache": {
"provider": "mem",
"mem": {
"maxSize": 20000
}
},
"timer": {
"provider": "basic"
},
@@ -51,18 +36,6 @@
}
},
"login": {
"provider": "freemarker"
},
"account": {
"provider": "freemarker"
},
"email": {
"provider": "freemarker"
},
"scheduled": {
"interval": 900
},
@@ -78,5 +51,11 @@
"dataSource": "java:jboss/datasources/KeycloakDS",
"databaseSchema": "update"
}
},
"connectionsInfinispan": {
"default" : {
"cacheContainer" : "java:jboss/infinispan/Keycloak"
}
}
}
@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-model-sessions-jpa">
<resources>
<artifact name="${org.keycloak:keycloak-model-sessions-jpa}"/>
</resources>
<dependencies>
<module name="org.keycloak.keycloak-core"/>
<module name="org.keycloak.keycloak-model-api"/>
<module name="org.keycloak.keycloak-connections-jpa"/>
<module name="javax.persistence.api"/>
<module name="org.jboss.logging"/>
<module name="javax.api"/>
<module name="org.javassist"/>
<module name="org.hibernate" services="import"/>
</dependencies>
</module>
@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-model-sessions-mem">
<resources>
<artifact name="${org.keycloak:keycloak-model-sessions-mem}"/>
</resources>
<dependencies>
<module name="org.keycloak.keycloak-core"/>
<module name="org.keycloak.keycloak-model-api"/>
<module name="org.jboss.logging"/>
<module name="javax.api"/>
</dependencies>
</module>
@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="org.keycloak.keycloak-model-sessions-mongo">
<resources>
<artifact name="${org.keycloak:keycloak-model-sessions-mongo}"/>
</resources>
<dependencies>
<module name="org.keycloak.keycloak-core"/>
<module name="org.keycloak.keycloak-model-api"/>
<module name="org.keycloak.keycloak-connections-mongo"/>
<module name="org.mongodb.mongo-java-driver"/>
<module name="org.jboss.logging"/>
<module name="javax.api"/>
</dependencies>
</module>
@@ -1,82 +0,0 @@
{
"providers": [
"classpath:${jboss.server.config.dir}/providers/*"
],
"admin": {
"realm": "master"
},
"eventsStore": {
"provider": "jpa",
"jpa": {
"exclude-events": [ "REFRESH_TOKEN" ]
}
},
"realm": {
"provider": "jpa"
},
"user": {
"provider": "jpa"
},
"userSessions": {
"provider" : "mem"
},
"realmCache": {
"provider": "mem"
},
"userCache": {
"provider": "mem",
"mem": {
"maxSize": 20000
}
},
"timer": {
"provider": "basic"
},
"theme": {
"default": "keycloak",
"staticMaxAge": 2592000,
"cacheTemplates": true,
"cacheThemes": true,
"folder": {
"dir": "${jboss.server.config.dir}/themes"
}
},
"login": {
"provider": "freemarker"
},
"account": {
"provider": "freemarker"
},
"email": {
"provider": "freemarker"
},
"scheduled": {
"interval": 900
},
"connectionsHttpClient": {
"default": {
"disable-trust-manager": true
}
},
"connectionsJpa": {
"default": {
"dataSource": "java:jboss/datasources/KeycloakDS",
"databaseSchema": "update"
}
}
}
@@ -36,9 +36,6 @@
<module name="org.keycloak.keycloak-model-mongo" services="import"/>
<module name="org.keycloak.keycloak-model-file" services="import"/>
<module name="org.keycloak.keycloak-model-sessions-infinispan" services="import"/>
<module name="org.keycloak.keycloak-model-sessions-jpa" services="import"/>
<module name="org.keycloak.keycloak-model-sessions-mem" services="import"/>
<module name="org.keycloak.keycloak-model-sessions-mongo" services="import"/>
<module name="org.keycloak.keycloak-saml-protocol" services="import"/>
<module name="org.keycloak.keycloak-services" export="true" services="import"/>
<module name="org.keycloak.keycloak-social-core" services="import"/>
@@ -46,9 +46,6 @@
<module name="org.keycloak.keycloak-model-mongo" services="import"/>
<module name="org.keycloak.keycloak-model-file" services="import"/>
<module name="org.keycloak.keycloak-model-sessions-infinispan" services="import"/>
<module name="org.keycloak.keycloak-model-sessions-jpa" services="import"/>
<module name="org.keycloak.keycloak-model-sessions-mem" services="import"/>
<module name="org.keycloak.keycloak-model-sessions-mongo" services="import"/>
<module name="org.keycloak.keycloak-saml-core" services="import"/>
<module name="org.keycloak.keycloak-saml-protocol" services="import"/>
<module name="org.keycloak.keycloak-services" export="true" services="import"/>
+11 -1
View File
@@ -3,7 +3,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../pom.xml</relativePath>
</parent>
@@ -25,4 +25,14 @@
<module>src-dist</module>
<module>feature-packs</module>
</modules>
<profiles>
<profile>
<id>jboss-release</id>
<modules>
<module>downloads</module>
</modules>
</profile>
</profiles>
</project>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
+1 -1
View File
@@ -4,7 +4,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -189,18 +189,6 @@
<maven-resource group="org.keycloak" artifact="keycloak-model-jpa"/>
</module-def>
<module-def name="org.keycloak.keycloak-model-sessions-mem">
<maven-resource group="org.keycloak" artifact="keycloak-model-sessions-mem"/>
</module-def>
<module-def name="org.keycloak.keycloak-model-sessions-jpa">
<maven-resource group="org.keycloak" artifact="keycloak-model-sessions-jpa"/>
</module-def>
<module-def name="org.keycloak.keycloak-model-sessions-mongo">
<maven-resource group="org.keycloak" artifact="keycloak-model-sessions-mongo"/>
</module-def>
<module-def name="org.keycloak.keycloak-model-sessions-infinispan">
<maven-resource group="org.keycloak" artifact="keycloak-model-sessions-infinispan"/>
</module-def>
@@ -8,7 +8,7 @@
<parent>
<artifactId>keycloak-parent</artifactId>
<groupId>org.keycloak</groupId>
<version>1.4.0.Final</version>
<version>1.5.1.Final</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
@@ -1,82 +0,0 @@
{
"providers": [
"classpath:${jboss.server.config.dir}/providers/*"
],
"admin": {
"realm": "master"
},
"eventsStore": {
"provider": "jpa",
"jpa": {
"exclude-events": [ "REFRESH_TOKEN" ]
}
},
"realm": {
"provider": "jpa"
},
"user": {
"provider": "jpa"
},
"userSessions": {
"provider" : "mem"
},
"realmCache": {
"provider": "mem"
},
"userCache": {
"provider": "mem",
"mem": {
"maxSize": 20000
}
},
"timer": {
"provider": "basic"
},
"theme": {
"default": "keycloak",
"staticMaxAge": 2592000,
"cacheTemplates": true,
"cacheThemes": true,
"folder": {
"dir": "${jboss.server.config.dir}/themes"
}
},
"login": {
"provider": "freemarker"
},
"account": {
"provider": "freemarker"
},
"email": {
"provider": "freemarker"
},
"scheduled": {
"interval": 900
},
"connectionsHttpClient": {
"default": {
"disable-trust-manager": true
}
},
"connectionsJpa": {
"default": {
"dataSource": "java:jboss/datasources/KeycloakDS",
"databaseSchema": "update"
}
}
}
@@ -36,9 +36,6 @@
<module name="org.keycloak.keycloak-model-mongo" services="import"/>
<module name="org.keycloak.keycloak-model-file" services="import"/>
<module name="org.keycloak.keycloak-model-sessions-infinispan" services="import"/>
<module name="org.keycloak.keycloak-model-sessions-jpa" services="import"/>
<module name="org.keycloak.keycloak-model-sessions-mem" services="import"/>
<module name="org.keycloak.keycloak-model-sessions-mongo" services="import"/>
<module name="org.keycloak.keycloak-saml-protocol" services="import"/>
<module name="org.keycloak.keycloak-services" export="true" services="import"/>
<module name="org.keycloak.keycloak-social-core" services="import"/>
@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-model-sessions-jpa">
<resources>
<!-- Insert resources here -->
</resources>
<dependencies>
<module name="org.keycloak.keycloak-core"/>
<module name="org.keycloak.keycloak-model-api"/>
<module name="org.keycloak.keycloak-connections-jpa"/>
<module name="javax.persistence.api"/>
<module name="org.jboss.logging"/>
<module name="javax.api"/>
<module name="org.javassist"/>
<module name="org.hibernate" services="import"/>
</dependencies>
</module>
@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.keycloak.keycloak-model-sessions-mem">
<resources>
<!-- Insert resources here -->
</resources>
<dependencies>
<module name="org.keycloak.keycloak-core"/>
<module name="org.keycloak.keycloak-model-api"/>
<module name="org.jboss.logging"/>
<module name="javax.api"/>
</dependencies>
</module>
Loaded 100 of 735 files, more files were not shown because too many files have changed in this diff. Show more