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