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