switched from System.out to logging; whitespace/formatting changes

This commit is contained in:
Axel Uhl
2014-10-07 18:26:36 +02:00
parent 76ce34e995
commit 813b345175
7 changed files with 167 additions and 140 deletions
+4 -7
View File
@@ -21,18 +21,15 @@
<param-value>com.sap.sse.security.CustomWebEnvironment</param-value>
</context-param>
<listener>
<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener
</listener-class>
<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
</listener>
<filter>
<filter-name>ShiroFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>
<!-- Make sure any request you want accessible to Shiro is filtered. /*
catches all -->
<!-- requests. Usually this filter mapping is defined first (before all
others) to -->
<!-- ensure that Shiro works in subsequent filters in the filter chain: -->
<!-- Make sure any request you want accessible to Shiro is filtered. "/*"
catches all requests. Usually this filter mapping is defined first (before all
others) to ensure that Shiro works in subsequent filters in the filter chain: -->
<filter-mapping>
<filter-name>ShiroFilter</filter-name>
<url-pattern>/*</url-pattern>
+3 -5
View File
@@ -17,11 +17,9 @@
<filter-name>ShiroFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>
<!-- Make sure any request you want accessible to Shiro is filtered. /*
catches all -->
<!-- requests. Usually this filter mapping is defined first (before all
others) to -->
<!-- ensure that Shiro works in subsequent filters in the filter chain: -->
<!-- Make sure any request you want accessible to Shiro is filtered. "/*"
catches all requests. Usually this filter mapping is defined first (before all
others) to ensure that Shiro works in subsequent filters in the filter chain: -->
<filter-mapping>
<filter-name>ShiroFilter</filter-name>
<url-pattern>/*</url-pattern>
@@ -15,12 +15,11 @@ import com.sap.sse.security.userstore.shared.User;
import com.sap.sse.security.userstore.shared.UserManagementException;
import com.sap.sse.security.userstore.shared.UserStore;
public class UserStoreImpl implements UserStore {
private static final Logger logger = Logger.getLogger(UserStoreImpl.class.getName());
private String name = "MongoDB user store";
private ConcurrentHashMap<String, User> users;
private ConcurrentHashMap<String, Object> settings;
private ConcurrentHashMap<String, Class<?>> settingTypes;
@@ -29,28 +28,28 @@ public class UserStoreImpl implements UserStore {
users = new ConcurrentHashMap<>();
settings = new ConcurrentHashMap<>();
settingTypes = new ConcurrentHashMap<String, Class<?>>();
for (Entry<String, Class<?>> e : PersistenceFactory.INSTANCE.getDefaultDomainObjectFactory().loadSettingTypes().entrySet()){
for (Entry<String, Class<?>> e : PersistenceFactory.INSTANCE.getDefaultDomainObjectFactory().loadSettingTypes().entrySet()) {
settingTypes.put(e.getKey(), e.getValue());
}
for (Entry<String, Object> e : PersistenceFactory.INSTANCE.getDefaultDomainObjectFactory().loadSettings().entrySet()){
for (Entry<String, Object> e : PersistenceFactory.INSTANCE.getDefaultDomainObjectFactory().loadSettings().entrySet()) {
settings.put(e.getKey(), e.getValue());
}
boolean changed = false;
changed = changed | initDefaultSettingsIfEmpty();
changed = changed | initSocialSettingsIfEmpty();
if (changed){
changed = changed || initDefaultSettingsIfEmpty();
changed = changed || initSocialSettingsIfEmpty();
if (changed) {
PersistenceFactory.INSTANCE.getDefaultMongoObjectFactory().storeSettingTypes(settingTypes);
PersistenceFactory.INSTANCE.getDefaultMongoObjectFactory().storeSettings(settings);
}
for (User u : PersistenceFactory.INSTANCE.getDefaultDomainObjectFactory().loadAllUsers()){
for (User u : PersistenceFactory.INSTANCE.getDefaultDomainObjectFactory().loadAllUsers()) {
users.put(u.getName(), u);
}
}
private boolean initSocialSettingsIfEmpty() {
boolean changed = false;
for (SocialSettingsKeys ssk : SocialSettingsKeys.values()){
if (settingTypes.get(ssk.name()) == null || settings.get(ssk.name()) == null){
for (SocialSettingsKeys ssk : SocialSettingsKeys.values()) {
if (settingTypes.get(ssk.name()) == null || settings.get(ssk.name()) == null) {
addSetting(ssk.name(), String.class);
setSetting(ssk.name(), ssk.getValue());
changed = true;
@@ -58,11 +57,11 @@ public class UserStoreImpl implements UserStore {
}
return changed;
}
private boolean initDefaultSettingsIfEmpty(){
private boolean initDefaultSettingsIfEmpty() {
boolean changed = false;
for (DefaultSettings ds : DefaultSettings.values()){
if (settingTypes.get(ds.name()) == null || settings.get(ds.name()) == null){
for (DefaultSettings ds : DefaultSettings.values()) {
if (settingTypes.get(ds.name()) == null || settings.get(ds.name()) == null) {
addSetting(ds.name(), String.class);
setSetting(ds.name(), ds.getValue());
changed = true;
@@ -92,7 +91,7 @@ public class UserStoreImpl implements UserStore {
@Override
public User getUserByName(String name) {
if (name == null){
if (name == null) {
return null;
}
return users.get(name);
@@ -100,7 +99,7 @@ public class UserStoreImpl implements UserStore {
@Override
public Set<String> getRolesFromUser(String name) throws UserManagementException {
if (users.get(name) == null){
if (users.get(name) == null) {
throw new UserManagementException(UserManagementException.USER_DOES_NOT_EXIST);
}
return users.get(name).getRoles();
@@ -108,7 +107,7 @@ public class UserStoreImpl implements UserStore {
@Override
public void addRoleForUser(String name, String role) throws UserManagementException {
if (users.get(name) == null){
if (users.get(name) == null) {
throw new UserManagementException(UserManagementException.USER_DOES_NOT_EXIST);
}
users.get(name).addRole(role);
@@ -117,7 +116,7 @@ public class UserStoreImpl implements UserStore {
@Override
public void removeRoleFromUser(String name, String role) throws UserManagementException {
if (users.get(name) == null){
if (users.get(name) == null) {
throw new UserManagementException(UserManagementException.USER_DOES_NOT_EXIST);
}
users.get(name).removeRole(role);
@@ -126,7 +125,7 @@ public class UserStoreImpl implements UserStore {
@Override
public void deleteUser(String name) throws UserManagementException {
if (users.get(name) == null){
if (users.get(name) == null) {
throw new UserManagementException(UserManagementException.USER_DOES_NOT_EXIST);
}
logger.info("Deleting user: " + users.get(name).toString());
@@ -137,10 +136,10 @@ public class UserStoreImpl implements UserStore {
@Override
public <T> T getSetting(String key, Class<T> clazz) {
Class<?> settingClazz = settingTypes.get(key);
if (settingClazz == null){
if (settingClazz == null) {
return null;
}
if (!settingClazz.equals(clazz)){
if (!settingClazz.equals(clazz)) {
throw new IllegalArgumentException("Value for \"" + key + "\" is not of type \"" + clazz.getName() + "\"!");
}
return clazz.cast(settings.get(key));
@@ -155,7 +154,7 @@ public class UserStoreImpl implements UserStore {
@Override
public void setSetting(String key, Object setting) {
Class<?> clazz = settingTypes.get(key);
if (clazz == null || !clazz.isInstance(setting)){
if (clazz == null || !clazz.isInstance(setting)) {
return;
}
settings.put(key, setting);
@@ -1,5 +1,12 @@
package com.sap.sse.security.userstore.shared;
/**
* Provides entries for Shiro's [urls] ini section. The enumeration literals are parsed by
* the <code><SecurityServiceImpl</code> constructor. The naming convention for the literals is
*
* @author Benjamin Ebling
*
*/
public enum DefaultSettings {
URLS_LOGIN("/Login.html"),
+3 -5
View File
@@ -19,11 +19,9 @@
<filter-name>ShiroFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>
<!-- Make sure any request you want accessible to Shiro is filtered. /*
catches all -->
<!-- requests. Usually this filter mapping is defined first (before all
others) to -->
<!-- ensure that Shiro works in subsequent filters in the filter chain: -->
<!-- Make sure any request you want accessible to Shiro is filtered. "/*"
catches all requests. Usually this filter mapping is defined first (before all
others) to ensure that Shiro works in subsequent filters in the filter chain: -->
<filter-mapping>
<filter-name>ShiroFilter</filter-name>
<url-pattern>/*</url-pattern>
@@ -13,7 +13,7 @@ public class CustomFilter extends PassThruAuthenticationFilter {
@Override
protected void redirectToLogin(ServletRequest request, ServletResponse response) throws IOException {
String loginUrl = "http://" + request.getServerName() + ":" + request.getLocalPort() + getLoginUrl();
String loginUrl = "http://" + request.getServerName() + ":" + request.getServerPort() + getLoginUrl();
boolean first = true;
for (Entry<String, String[]> e : request.getParameterMap().entrySet()){
if (first){
@@ -59,12 +59,12 @@ import com.sap.sse.security.userstore.shared.UserManagementException;
import com.sap.sse.security.userstore.shared.UserStore;
import com.sap.sse.security.userstore.shared.UsernamePasswordAccount;
public class SecurityServiceImpl extends RemoteServiceServlet implements SecurityService {
public class SecurityServiceImpl extends RemoteServiceServlet implements SecurityService {
private static final long serialVersionUID = -3490163216601311858L;
private static final Logger logger = Logger.getLogger(SecurityServiceImpl.class.getName());
private SecurityManager securityManager;
private CacheManager cacheManager = new EhCacheManager();
private UserStore store;
@@ -73,12 +73,12 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securi
shiroConfiguration = new Ini();
shiroConfiguration.loadFromPath("classpath:shiro.ini");
}
public SecurityServiceImpl(UserStore store) {
logger.info("Initializing Security Service with user store "+store);
logger.info("Initializing Security Service with user store " + store);
this.store = store;
// Create default users if no users exist yet.
if (store.getUserCollection().isEmpty()){
if (store.getUserCollection().isEmpty()) {
try {
logger.info("No users found, creating default user \"admin\" with password \"admin\"");
createSimpleUser("admin", "nobody@sapsailing.com", "admin");
@@ -88,33 +88,37 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securi
logger.log(Level.SEVERE, "Exception while creating default admin user", e);
}
}
Map<String, Class<?>> allSettingTypes = store.getAllSettingTypes();
for (Entry<String, Class<?>> e : allSettingTypes.entrySet()){
for (Entry<String, Class<?>> e : allSettingTypes.entrySet()) {
String[] classifier = e.getKey().split("_");
if (classifier[0].equals("URLS") && !classifier[1].equals("AUTH")){
if (classifier[0].equals("URLS") && !classifier[1].equals("AUTH")) {
String key = store.getSetting(e.getKey(), String.class);
String n = classifier[0] + "_AUTH";
for (int i = 1; i < classifier.length; i++){
for (int i = 1; i < classifier.length; i++) {
n += "_" + classifier[i];
}
String value = store.getSetting(n, String.class);
// if (shiroConfiguration.getSection("urls") == null){
// shiroConfiguration.addSection("urls");
// }
// if (shiroConfiguration.getSection("urls") == null){
// shiroConfiguration.addSection("urls");
// }
shiroConfiguration.getSection("urls").put(key, value);
}
}
// shiroConfiguration.getSection("urls").put("/**", "anon");
for (Entry<String, String> e : shiroConfiguration.getSection("urls").entrySet()){
System.out.println(e.getKey() + ": " + e.getValue());
}
// ini.getSection("urls").put("", "");
// shiroConfiguration.getSection("urls").put("/**", "anon");
// ini.getSection("urls").put("", "");
Factory<SecurityManager> factory = new WebIniSecurityManagerFactory(shiroConfiguration);
// LifecycleUtils.init(ini);
// LifecycleUtils.init(ini);
logger.info("Loaded shiro.ini file from: classpath:shiro.ini");
StringBuilder logMessage = new StringBuilder("[urls] section from Shiro configuration:");
for (Entry<String, String> e : shiroConfiguration.getSection("urls").entrySet()) {
logMessage.append("\n");
logMessage.append(e.getKey());
logMessage.append(": ");
logMessage.append(e.getValue());
}
logger.info(logMessage.toString());
System.setProperty("java.net.useSystemProxies", "true");
SecurityManager securityManager = factory.getInstance();
logger.info("Created: " + securityManager);
@@ -142,10 +146,9 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securi
SessionUtils.saveUsername(username);
HttpServletRequest httpRequest = WebUtils.getHttpRequest(subject);
SavedRequest savedRequest = WebUtils.getSavedRequest(httpRequest);
if (savedRequest != null){
if (savedRequest != null) {
redirectUrl = savedRequest.getRequestUrl();
}
else {
} else {
redirectUrl = "";
}
System.out.println("Redirecturl: " + redirectUrl);
@@ -166,10 +169,10 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securi
@Override
public User createSimpleUser(String name, String email, String password) throws UserManagementException {
if (store.getUserByName(name) != null){
if (store.getUserByName(name) != null) {
throw new UserManagementException(UserManagementException.USER_ALREADY_EXISTS);
}
if (name == null || password == null || name.length() < 3 || password.length() < 5){
if (name == null || password == null || name.length() < 3 || password.length() < 5) {
throw new UserManagementException(UserManagementException.INVALID_CREDENTIALS);
}
RandomNumberGenerator rng = new SecureRandomNumberGenerator();
@@ -203,7 +206,7 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securi
public void setSetting(String key, Object setting) {
String[] split = key.split("_");
if (split[0].equals("URLS"))
store.setSetting(key, setting);
store.setSetting(key, setting);
}
@Override
@@ -223,7 +226,7 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securi
@Override
public User createSocialUser(String name, SocialUserAccount socialUserAccount) throws UserManagementException {
if (store.getUserByName(name) != null){
if (store.getUserByName(name) != null) {
throw new UserManagementException(UserManagementException.USER_ALREADY_EXISTS);
}
return store.createUser(name, socialUserAccount.getProperty(Social.EMAIL.name()), socialUserAccount);
@@ -248,17 +251,18 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securi
+ "Please contact your administrator to unlock it.");
throw new UserManagementException("Invalid credentials!");
} catch (AuthenticationException ae) {
logger.log(Level.SEVERE,ae.getLocalizedMessage());
logger.log(Level.SEVERE, ae.getLocalizedMessage());
throw new UserManagementException("An error occured while authenticating the user!");
}
}
String username = SessionUtils.loadUsername();
if (username == null){
logger.info("Something went wrong while authneticating, check doGetAuthenticationInfo() in " + OAuthRealm.class.getName() + ".");
if (username == null) {
logger.info("Something went wrong while authneticating, check doGetAuthenticationInfo() in "
+ OAuthRealm.class.getName() + ".");
throw new UserManagementException("An error occured while authenticating the user!");
}
User user = store.getUserByName(username);
if (user == null){
if (user == null) {
logger.info("Could not find user " + username);
throw new UserManagementException("An error occured while authenticating the user!");
}
@@ -272,7 +276,7 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securi
return null;
}
String username = SessionUtils.loadUsername();
if (username == null || username.length() <= 0){
if (username == null || username.length() <= 0) {
return null;
}
return store.getUserByName(username);
@@ -303,7 +307,8 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securi
// get the access token
SessionUtils.saveRequestTokenToSession(requestToken);
} catch (Exception e) {
throw new UserManagementException("Could not get request token for " + authProvider + " " + e.getMessage());
throw new UserManagementException("Could not get request token for " + authProvider + " "
+ e.getMessage());
}
}
@@ -322,14 +327,14 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securi
}
} catch (Exception e) {
e.printStackTrace();
throw new UserManagementException("Could not get Authorization url: ");
throw new UserManagementException("Could not get Authorization url: ");
}
if (authProvider == ClientUtils.FLICKR) {
authorizationUrl += "&perms=read";
}
if (authProvider == ClientUtils.FACEBOOK){
if (authProvider == ClientUtils.FACEBOOK) {
authorizationUrl += "&scope=email";
}
@@ -341,84 +346,109 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securi
OAuthService service = null;
switch (authProvider) {
case ClientUtils.FACEBOOK: {
service = new ServiceBuilder().provider(FacebookApi.class).apiKey(store.getSetting(SocialSettingsKeys.OAUTH_FACEBOOK_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_FACEBOOK_APP_SECRET.name(), String.class)).callback(ClientUtils.getCallbackUrl()).build();
service = new ServiceBuilder().provider(FacebookApi.class)
.apiKey(store.getSetting(SocialSettingsKeys.OAUTH_FACEBOOK_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_FACEBOOK_APP_SECRET.name(), String.class))
.callback(ClientUtils.getCallbackUrl()).build();
break;
}
case ClientUtils.GOOGLE: {
service = new ServiceBuilder().provider(GoogleApi.class).apiKey(store.getSetting(SocialSettingsKeys.OAUTH_GOOGLE_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_GOOGLE_APP_SECRET.name(), String.class)).scope(store.getSetting(SocialSettingsKeys.OAUTH_GOOGLE_SCOPE.name(), String.class))
service = new ServiceBuilder().provider(GoogleApi.class)
.apiKey(store.getSetting(SocialSettingsKeys.OAUTH_GOOGLE_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_GOOGLE_APP_SECRET.name(), String.class))
.scope(store.getSetting(SocialSettingsKeys.OAUTH_GOOGLE_SCOPE.name(), String.class))
.callback(ClientUtils.getCallbackUrl()).build();
break;
}
case ClientUtils.TWITTER: {
service = new ServiceBuilder().provider(TwitterApi.class).apiKey(store.getSetting(SocialSettingsKeys.OAUTH_TWITTER_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_TWITTER_APP_SECRET.name(), String.class)).callback(ClientUtils.getCallbackUrl()).build();
service = new ServiceBuilder().provider(TwitterApi.class)
.apiKey(store.getSetting(SocialSettingsKeys.OAUTH_TWITTER_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_TWITTER_APP_SECRET.name(), String.class))
.callback(ClientUtils.getCallbackUrl()).build();
break;
}
case ClientUtils.YAHOO: {
service = new ServiceBuilder().provider(YahooApi.class).apiKey(store.getSetting(SocialSettingsKeys.OAUTH_YAHOO_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_YAHOO_APP_SECRET.name(), String.class)).callback(ClientUtils.getCallbackUrl()).build();
service = new ServiceBuilder().provider(YahooApi.class)
.apiKey(store.getSetting(SocialSettingsKeys.OAUTH_YAHOO_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_YAHOO_APP_SECRET.name(), String.class))
.callback(ClientUtils.getCallbackUrl()).build();
break;
}
case ClientUtils.LINKEDIN: {
service = new ServiceBuilder().provider(LinkedInApi.class).apiKey(store.getSetting(SocialSettingsKeys.OAUTH_LINKEDIN_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_LINKEDIN_APP_SECRET.name(), String.class)).callback(ClientUtils.getCallbackUrl()).build();
service = new ServiceBuilder().provider(LinkedInApi.class)
.apiKey(store.getSetting(SocialSettingsKeys.OAUTH_LINKEDIN_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_LINKEDIN_APP_SECRET.name(), String.class))
.callback(ClientUtils.getCallbackUrl()).build();
break;
}
case ClientUtils.INSTAGRAM: {
service = new ServiceBuilder().provider(InstagramApi.class).apiKey(store.getSetting(SocialSettingsKeys.OAUTH_INSTAGRAM_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_INSTAGRAM_APP_SECRET.name(), String.class)).callback(ClientUtils.getCallbackUrl()).build();
service = new ServiceBuilder().provider(InstagramApi.class)
.apiKey(store.getSetting(SocialSettingsKeys.OAUTH_INSTAGRAM_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_INSTAGRAM_APP_SECRET.name(), String.class))
.callback(ClientUtils.getCallbackUrl()).build();
break;
}
case ClientUtils.GITHUB: {
service = new ServiceBuilder().provider(GithubApi.class).apiKey(store.getSetting(SocialSettingsKeys.OAUTH_GITHUB_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_GITHUB_APP_SECRET.name(), String.class)).callback(ClientUtils.getCallbackUrl()).build();
service = new ServiceBuilder().provider(GithubApi.class)
.apiKey(store.getSetting(SocialSettingsKeys.OAUTH_GITHUB_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_GITHUB_APP_SECRET.name(), String.class))
.callback(ClientUtils.getCallbackUrl()).build();
break;
}
case ClientUtils.IMGUR: {
service = new ServiceBuilder().provider(ImgUrApi.class).apiKey(store.getSetting(SocialSettingsKeys.OAUTH_IMGUR_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_IMGUR_APP_SECRET.name(), String.class)).callback(ClientUtils.getCallbackUrl()).build();
service = new ServiceBuilder().provider(ImgUrApi.class)
.apiKey(store.getSetting(SocialSettingsKeys.OAUTH_IMGUR_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_IMGUR_APP_SECRET.name(), String.class))
.callback(ClientUtils.getCallbackUrl()).build();
break;
}
case ClientUtils.FLICKR: {
service = new ServiceBuilder().provider(FlickrApi.class).apiKey(store.getSetting(SocialSettingsKeys.OAUTH_FLICKR_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_FLICKR_APP_SECRET.name(), String.class)).callback(ClientUtils.getCallbackUrl()).build();
service = new ServiceBuilder().provider(FlickrApi.class)
.apiKey(store.getSetting(SocialSettingsKeys.OAUTH_FLICKR_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_FLICKR_APP_SECRET.name(), String.class))
.callback(ClientUtils.getCallbackUrl()).build();
break;
}
case ClientUtils.VIMEO: {
service = new ServiceBuilder().provider(VimeoApi.class).apiKey(store.getSetting(SocialSettingsKeys.OAUTH_VIMEO_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_VIMEO_APP_SECRET.name(), String.class)).callback(ClientUtils.getCallbackUrl()).build();
service = new ServiceBuilder().provider(VimeoApi.class)
.apiKey(store.getSetting(SocialSettingsKeys.OAUTH_VIMEO_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_VIMEO_APP_SECRET.name(), String.class))
.callback(ClientUtils.getCallbackUrl()).build();
break;
}
case ClientUtils.WINDOWS_LIVE: {
// a Scope must be specified
service = new ServiceBuilder().provider(LiveApi.class).apiKey(store.getSetting(SocialSettingsKeys.OAUTH_WINDOWS_LIVE_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_WINDOWS_LIVE_APP_SECRET.name(), String.class)).callback(ClientUtils.getCallbackUrl())
.scope("wl.basic").build();
service = new ServiceBuilder().provider(LiveApi.class)
.apiKey(store.getSetting(SocialSettingsKeys.OAUTH_WINDOWS_LIVE_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_WINDOWS_LIVE_APP_SECRET.name(), String.class))
.callback(ClientUtils.getCallbackUrl()).scope("wl.basic").build();
break;
}
case ClientUtils.TUMBLR: {
service = new ServiceBuilder().provider(TumblrApi.class).apiKey(store.getSetting(SocialSettingsKeys.OAUTH_TUMBLR_LIVE_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_TUMBLR_LIVE_APP_SECRET.name(), String.class)).callback(ClientUtils.getCallbackUrl()).build();
service = new ServiceBuilder().provider(TumblrApi.class)
.apiKey(store.getSetting(SocialSettingsKeys.OAUTH_TUMBLR_LIVE_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_TUMBLR_LIVE_APP_SECRET.name(), String.class))
.callback(ClientUtils.getCallbackUrl()).build();
break;
}
case ClientUtils.FOURSQUARE: {
service = new ServiceBuilder().provider(Foursquare2Api.class).apiKey(store.getSetting(SocialSettingsKeys.OAUTH_FOURSQUARE_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_FOURSQUARE_APP_SECRET.name(), String.class)).callback(ClientUtils.getCallbackUrl()).build();
service = new ServiceBuilder().provider(Foursquare2Api.class)
.apiKey(store.getSetting(SocialSettingsKeys.OAUTH_FOURSQUARE_APP_ID.name(), String.class))
.apiSecret(store.getSetting(SocialSettingsKeys.OAUTH_FOURSQUARE_APP_SECRET.name(), String.class))
.callback(ClientUtils.getCallbackUrl()).build();
break;
}
@@ -432,16 +462,16 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securi
@Override
public void addSetting(String key, Class<?> clazz) throws UserManagementException {
if (!isValidSettingsKey(key)){
if (!isValidSettingsKey(key)) {
throw new UserManagementException("Invalid key!");
}
store.addSetting(key, clazz);
}
public static boolean isValidSettingsKey(String key){
public static boolean isValidSettingsKey(String key) {
char[] characters = key.toCharArray();
for (char c : characters){
if (!Character.isLetter(c) && c != '_'){
for (char c : characters) {
if (!Character.isLetter(c) && c != '_') {
return false;
}
}
@@ -455,42 +485,40 @@ public class SecurityServiceImpl extends RemoteServiceServlet implements Securi
System.out.println("Env: " + env);
FilterChainResolver resolver = env.getFilterChainResolver();
System.out.println("Resolver: " + resolver);
if (resolver instanceof PathMatchingFilterChainResolver){
if (resolver instanceof PathMatchingFilterChainResolver) {
PathMatchingFilterChainResolver pmfcr = (PathMatchingFilterChainResolver) resolver;
FilterChainManager filterChainManager = pmfcr.getFilterChainManager();
System.out.println(filterChainManager);
Set<String> chainNames = filterChainManager.getChainNames();
System.out.println("Chains:");
for (String s: chainNames){
for (String s : chainNames) {
System.out.println(s + ": " + Arrays.toString(filterChainManager.getChain(s).toArray(new Filter[0])));
}
// Map<String, Class<?>> allSettingTypes = store.getAllSettingTypes();
// for (Entry<String, Class<?>> e : allSettingTypes.entrySet()){
// String[] classifier = e.getKey().split("_");
// if (classifier[0].equals("URLS") && !classifier[1].equals("AUTH")){
// String url = store.getSetting(e.getKey(), String.class);
// String n = classifier[0] + "_AUTH";
// for (int i = 1; i < classifier.length; i++){
// n += "_" + classifier[i];
// }
// String filter = store.getSetting(n, String.class);
// if (url != null && filter != null){
// if (!chainNames.contains(url)){
// filterChainManager.createChain(url, filter);
// logger.info("Created filter " + filter + " for " + url);
// }
// else {
// filterChainManager.addToChain(url, filter);
// logger.info("Updated filter " + filter + " for " + url);
// }
// }
// }
// }
// Map<String, Class<?>> allSettingTypes = store.getAllSettingTypes();
// for (Entry<String, Class<?>> e : allSettingTypes.entrySet()){
// String[] classifier = e.getKey().split("_");
// if (classifier[0].equals("URLS") && !classifier[1].equals("AUTH")){
// String url = store.getSetting(e.getKey(), String.class);
// String n = classifier[0] + "_AUTH";
// for (int i = 1; i < classifier.length; i++){
// n += "_" + classifier[i];
// }
// String filter = store.getSetting(n, String.class);
// if (url != null && filter != null){
// if (!chainNames.contains(url)){
// filterChainManager.createChain(url, filter);
// logger.info("Created filter " + filter + " for " + url);
// }
// else {
// filterChainManager.addToChain(url, filter);
// logger.info("Updated filter " + filter + " for " + url);
// }
// }
// }
// }
}
}