Merge pull request #1058 from mposolda/master

Fix google and twitter examples
This commit is contained in:
Marek Posolda 2015-03-18 12:01:41 +01:00
commit 3912c60ebc
10 changed files with 39 additions and 14 deletions

View file

@ -15,6 +15,7 @@
<module name="org.twitter4j"/> <module name="org.twitter4j"/>
<module name="org.jboss.logging"/> <module name="org.jboss.logging"/>
<module name="javax.api"/> <module name="javax.api"/>
<module name="javax.ws.rs.api"/>
<module name="org.codehaus.jackson.jackson-core-asl"/> <module name="org.codehaus.jackson.jackson-core-asl"/>
<module name="org.codehaus.jackson.jackson-mapper-asl"/> <module name="org.codehaus.jackson.jackson-mapper-asl"/>
<module name="org.codehaus.jackson.jackson-xc"/> <module name="org.codehaus.jackson.jackson-xc"/>

View file

@ -34,6 +34,7 @@ documentation.
Please take a look on [Facebook Developer Console](https://developers.facebook.com/apps/) for more details. Make sure to use the correct Please take a look on [Facebook Developer Console](https://developers.facebook.com/apps/) for more details. Make sure to use the correct
redirect URI to be used as URL on Facebook. The facebook will redirect to this URI after finish authentication. For this example, it's the URL redirect URI to be used as URL on Facebook. The facebook will redirect to this URI after finish authentication. For this example, it's the URL
[http://localhost:8080/auth/realms/facebook-identity-provider-realm/broker/facebook](http://localhost:8080/auth/realms/facebook-identity-provider-realm/broker/facebook) . [http://localhost:8080/auth/realms/facebook-identity-provider-realm/broker/facebook](http://localhost:8080/auth/realms/facebook-identity-provider-realm/broker/facebook) .
You can also determine this redirect URI from Keycloak admin console (It's in Identity provider settings for Facebook provider).
Once you have a Facebook Application configured, you need to obtain both **App ID** and **App Secret** and update the Once you have a Facebook Application configured, you need to obtain both **App ID** and **App Secret** and update the
**facebook-identity-provider-realm.json** configuration file with these information. There you'll find a section as follows: **facebook-identity-provider-realm.json** configuration file with these information. There you'll find a section as follows:
@ -127,7 +128,7 @@ create a new admin password before you can go to the create realm page.
[http://localhost:8080/auth/admin/master/console/#/create/realm](http://localhost:8080/auth/admin/master/console/#/create/realm) [http://localhost:8080/auth/admin/master/console/#/create/realm](http://localhost:8080/auth/admin/master/console/#/create/realm)
Import the **facebook-identity-provider-realm.json** file that is in the saml/ example directory. Import the **facebook-identity-provider-realm.json** file that is in the facebook-authentication/ example directory.
Start JBoss Enterprise Application Platform 6 or WildFly with the Web Profile Start JBoss Enterprise Application Platform 6 or WildFly with the Web Profile

View file

@ -31,9 +31,9 @@ Make sure you've set up a application in Google
This example application requires you to create a Google Application. How to create it is beyond the scope of this This example application requires you to create a Google Application. How to create it is beyond the scope of this
documentation. documentation.
Please take a look on [Google Developer Console](https://developers.google.com/apps/) for more details. Please take a look on [Google Developer Console](https://cloud.google.com/console/project) for more details.
Once you have a Google Application configured, you need to obtain both **App ID** and **App Secret** and update the Once you have a Google Application configured, you need to obtain both **Client ID** and **Client Secret** and update the
**google-identity-provider-realm.json** configuration file with these information. There you'll find a section as follows: **google-identity-provider-realm.json** configuration file with these information. There you'll find a section as follows:
"identityProviders": [ "identityProviders": [
@ -51,7 +51,11 @@ Once you have a Google Application configured, you need to obtain both **App ID*
} }
] ]
Please, update both *clientId* and *clientSecret* configuration options with the **App ID** and **App Secret**. Please, update both *clientId* and *clientSecret* configuration options with the **Client ID** and **Client Secret**.
Make sure to use the correct redirect URI to be used as URL on Google. The Google will redirect to this URI after finish authentication. For this example, it's the URL
[http://localhost:8080/auth/realms/google-identity-provider-realm/broker/google](http://localhost:8080/auth/realms/google-identity-provider-realm/broker/google) .
You can also determine the redirect URI from Keycloak admin console (It's in Identity provider settings for Google provider).
Make sure you've set up the Keycloak Server Make sure you've set up the Keycloak Server
-------------------------------------- --------------------------------------
@ -125,7 +129,7 @@ create a new admin password before you can go to the create realm page.
[http://localhost:8080/auth/admin/master/console/#/create/realm](http://localhost:8080/auth/admin/master/console/#/create/realm) [http://localhost:8080/auth/admin/master/console/#/create/realm](http://localhost:8080/auth/admin/master/console/#/create/realm)
Import the **google-identity-provider-realm.json** file that is in the saml/ example directory. Import the **google-identity-provider-realm.json** file that is in the google-authentication/ example directory.
Start JBoss Enterprise Application Platform 6 or WildFly with the Web Profile Start JBoss Enterprise Application Platform 6 or WildFly with the Web Profile

View file

@ -42,6 +42,12 @@
], ],
"webOrigins": [ "webOrigins": [
"http://localhost:8080" "http://localhost:8080"
],
"identityProviders": [
{
"id": "google",
"retrieveToken": true
}
] ]
} }
], ],

View file

@ -83,7 +83,7 @@ module.controller('GlobalCtrl', function($scope, $http, $location, Auth) {
$scope.identity = Auth.getIdentity(); $scope.identity = Auth.getIdentity();
$scope.loadSocialProfile = function() { $scope.loadSocialProfile = function() {
$http.get('http://localhost:8081/auth/realms/google-identity-provider-realm/broker/google/token').success(function(data) { $http.get('/auth/realms/google-identity-provider-realm/broker/google/token').success(function(data) {
var accessToken = data.access_token; var accessToken = data.access_token;
var req = { var req = {

View file

@ -31,9 +31,9 @@ Make sure you've set up a application in Twitter
This example application requires you to create a Twitter Application. How to create it is beyond the scope of this This example application requires you to create a Twitter Application. How to create it is beyond the scope of this
documentation. documentation.
Please take a look on [Twitter Developer Console](https://developers.twitter.com/apps/) for more details. Please take a look on [Twitter Developer Console](https://dev.twitter.com/apps) for more details.
Once you have a Twitter Application configured, you need to obtain both **App ID** and **App Secret** and update the Once you have a Twitter Application configured, you need to obtain both **Consumer Key** and **Consumer Secret** and update the
**twitter-identity-provider-realm.json** configuration file with these information. There you'll find a section as follows: **twitter-identity-provider-realm.json** configuration file with these information. There you'll find a section as follows:
"identityProviders": [ "identityProviders": [
@ -51,7 +51,7 @@ Once you have a Twitter Application configured, you need to obtain both **App ID
} }
] ]
Please, update both *clientId* and *clientSecret* configuration options with the **App ID** and **App Secret**. Please, update both *clientId* and *clientSecret* configuration options with the **Consumer Key** and **Consumer Secret**.
Make sure you've set up the Keycloak Server Make sure you've set up the Keycloak Server
-------------------------------------- --------------------------------------
@ -125,7 +125,7 @@ create a new admin password before you can go to the create realm page.
[http://localhost:8080/auth/admin/master/console/#/create/realm](http://localhost:8080/auth/admin/master/console/#/create/realm) [http://localhost:8080/auth/admin/master/console/#/create/realm](http://localhost:8080/auth/admin/master/console/#/create/realm)
Import the **twitter-identity-provider-realm.json** file that is in the saml/ example directory. Import the **twitter-identity-provider-realm.json** file that is in the twitter-authentication/ example directory.
Start JBoss Enterprise Application Platform 6 or WildFly with the Web Profile Start JBoss Enterprise Application Platform 6 or WildFly with the Web Profile
@ -156,7 +156,10 @@ _NOTE: The following build command assumes you have configured your Maven user s
Access the application Access the application
--------------------- ---------------------
The application will be running at the following URL: <http://localhost:8080/twitter-authentication>. The application will be running at the following URL: <http://localhost:8080/twitter-authentication/index.html>. This is angular based application.
In addition, the example contains testing servlet, which will show you JSON with full info about your Twitter account. Servlet is accessible
on [http://localhost:8080/twitter-authentication/twitter/showUser](http://localhost:8080/twitter-authentication/twitter/showUser) .
Undeploy the Archive Undeploy the Archive

View file

@ -67,6 +67,11 @@ public class TwitterShowUserServlet extends HttpServlet {
initKeyCloakClient(config); initKeyCloakClient(config);
} }
@Override
public void destroy() {
this.keycloak.close();
}
@Override @Override
protected void doGet(final HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { protected void doGet(final HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
TwitterOAuthResponse twitterOAuthResponse = getTwitterOAuthResponse(request); TwitterOAuthResponse twitterOAuthResponse = getTwitterOAuthResponse(request);
@ -132,6 +137,5 @@ public class TwitterShowUserServlet extends HttpServlet {
this.keycloak = Keycloak.getInstance(authServer, realmName, "admin", "password", "admin-client", "password"); this.keycloak = Keycloak.getInstance(authServer, realmName, "admin", "password", "admin-client", "password");
IdentityProvidersResource providersResource = keycloak.realm(realmName).identityProviders(); IdentityProvidersResource providersResource = keycloak.realm(realmName).identityProviders();
this.identityProvider = providersResource.get("twitter").toRepresentation(); this.identityProvider = providersResource.get("twitter").toRepresentation();
this.keycloak = Keycloak.getInstance(authServer, realmName, "admin", "password", "admin-client", "password");
} }
} }

View file

@ -2,7 +2,7 @@
"realm" : "twitter-identity-provider-realm", "realm" : "twitter-identity-provider-realm",
"resource" : "twitter-authentication", "resource" : "twitter-authentication",
"realm-public-key" : "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrVrCuTtArbgaZzL1hvh0xtL5mc7o0NqPVnYXkLvgcwiC3BjLGw1tGEGoJaXDuSaRllobm53JBhjx33UNv+5z/UMG4kytBWxheNVKnL6GgqlNabMaFfPLPCF8kAgKnsi79NMo+n6KnSY8YeUmec/p2vjO2NjsSAVcWEQMVhJ31LwIDAQAB", "realm-public-key" : "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrVrCuTtArbgaZzL1hvh0xtL5mc7o0NqPVnYXkLvgcwiC3BjLGw1tGEGoJaXDuSaRllobm53JBhjx33UNv+5z/UMG4kytBWxheNVKnL6GgqlNabMaFfPLPCF8kAgKnsi79NMo+n6KnSY8YeUmec/p2vjO2NjsSAVcWEQMVhJ31LwIDAQAB",
"auth-server-url": "/auth", "auth-server-url": "http://localhost:8080/auth",
"ssl-required" : "external", "ssl-required" : "external",
"public-client" : true "public-client" : true
} }

View file

@ -87,7 +87,7 @@ module.controller('GlobalCtrl', function($scope, $http, $location, Auth) {
$scope.identity = Auth.getIdentity(); $scope.identity = Auth.getIdentity();
$scope.loadSocialProfile = function() { $scope.loadSocialProfile = function() {
$http.get('http://localhost:8080/twitter-authentication/twitter/showUser') $http.get('/twitter-authentication/twitter/showUser')
.success(function(profile) { .success(function(profile) {
$scope.socialProfile = profile; $scope.socialProfile = profile;
}) })

View file

@ -43,6 +43,12 @@
], ],
"webOrigins": [ "webOrigins": [
"http://localhost:8080" "http://localhost:8080"
],
"identityProviders": [
{
"id": "twitter",
"retrieveToken": true
}
] ]
}, },
{ {