1
22
23 package com.liferay.portal.util;
24
25 import com.liferay.portal.SystemException;
26 import com.liferay.portal.kernel.log.Log;
27 import com.liferay.portal.kernel.log.LogFactoryUtil;
28 import com.liferay.portal.kernel.util.Http;
29 import com.liferay.portal.kernel.util.StringPool;
30 import com.liferay.portal.kernel.util.StringUtil;
31
32 import org.openid4java.consumer.ConsumerException;
33 import org.openid4java.consumer.ConsumerManager;
34 import org.openid4java.consumer.InMemoryConsumerAssociationStore;
35 import org.openid4java.consumer.InMemoryNonceVerifier;
36
37
42 public class OpenIdUtil {
43
44 public static ConsumerManager getConsumerManager() {
45 return _instance._manager;
46 }
47
48 public static String getScreenName(String openId) {
49 String result = normalize(openId);
50
51 if (result.startsWith(Http.HTTP_WITH_SLASH)) {
52 result = result.substring(Http.HTTP_WITH_SLASH.length());
53 }
54
55 if (result.startsWith(Http.HTTPS_WITH_SLASH)) {
56 result = result.substring(Http.HTTPS_WITH_SLASH.length());
57 }
58
59 result = StringUtil.replace(
60 result,
61 new String[] {StringPool.SLASH, StringPool.UNDERLINE},
62 new String[] {StringPool.PERIOD, StringPool.PERIOD});
63
64 return result;
65 }
66
67 public static boolean isEnabled(long companyId) throws SystemException {
68 return PrefsPropsUtil.getBoolean(
69 companyId, PropsKeys.OPEN_ID_AUTH_ENABLED,
70 PropsValues.OPEN_ID_AUTH_ENABLED);
71 }
72
73 public static String normalize(String identity) {
74 String result = identity;
75
76 if (result.endsWith(StringPool.SLASH)) {
77 result = result.substring(0, result.length() - 1);
78 }
79
80 return result;
81 }
82
83 private OpenIdUtil() {
84 try {
85 _manager = new ConsumerManager();
86
87 _manager.setAssociations(new InMemoryConsumerAssociationStore());
88 _manager.setNonceVerifier(new InMemoryNonceVerifier(5000));
89 }
90 catch (ConsumerException ce) {
91 _log.error(ce.getMessage());
92 }
93 }
94
95 private static Log _log = LogFactoryUtil.getLog(OpenIdUtil.class);
96
97 private static OpenIdUtil _instance = new OpenIdUtil();
98
99 private ConsumerManager _manager;
100
101 }