001 package org.tynamo.security.federatedaccounts.base;
002
003 import org.apache.tapestry5.ioc.annotations.Inject;
004 import org.apache.tapestry5.ioc.annotations.Symbol;
005 import org.apache.tapestry5.services.PageRenderLinkSource;
006 import org.tynamo.security.federatedaccounts.FederatedAccountSymbols;
007 import org.tynamo.security.federatedaccounts.facebook.FacebookRealm;
008 import org.tynamo.security.federatedaccounts.pages.CommitFacebookOauth;
009 import org.tynamo.security.federatedaccounts.pages.FacebookOauth;
010 import org.tynamo.security.federatedaccounts.util.WindowMode;
011
012 public class FacebookOauthComponentBase {
013 @Inject
014 @Symbol(FederatedAccountSymbols.COMMITAFTER_OAUTH)
015 private boolean autocommit;
016
017 public boolean getAutocommit() {
018 return autocommit;
019 }
020
021 @Inject
022 @Symbol(FacebookRealm.FACEBOOK_CLIENTID)
023 private String oauthClientId;
024
025 public String getOauthClientId() {
026 return oauthClientId;
027 }
028
029 @Inject
030 @Symbol(FacebookRealm.FACEBOOK_CLIENTSECRET)
031 private String oauthClientSecret;
032
033 protected String getOauthClientSecret() {
034 return oauthClientSecret;
035 }
036
037 public boolean isOauthConfigured() {
038 return !"".equals(oauthClientId) && !"".equals(oauthClientSecret);
039 }
040
041 @Inject
042 private PageRenderLinkSource linkSource;
043
044 // Final since signin and oauth *must* share the same implementation (or at least use the same link)
045 protected final String getOauthRedirectLink(WindowMode windowMode) {
046 return linkSource.createPageRenderLinkWithContext(autocommit ? CommitFacebookOauth.class : FacebookOauth.class, windowMode)
047 .toAbsoluteURI();
048 }
049 }