1 19 package org.openharmonise.him.authentication; 20 21 import java.net.*; 22 import java.rmi.*; 23 24 import javax.xml.rpc.*; 25 26 import org.openharmonise.commons.xml.namespace.*; 27 import org.openharmonise.him.*; 28 import org.openharmonise.him.harmonise.*; 29 import org.openharmonise.vfs.*; 30 import org.openharmonise.vfs.authentication.*; 31 import org.openharmonise.vfs.metadata.value.*; 32 import org.openharmonise.vfs.servers.*; 33 34 35 42 public class HarmoniseAuthenticationStore extends AbstractAuthenticationStore { 43 44 47 private AuthInfo m_auth = null; 48 49 52 private static boolean m_bIsSuperUser = false; 53 54 57 private static boolean m_bSuperUserStatusChecked = false; 58 59 62 public HarmoniseAuthenticationStore() { 63 super(); 64 this.setup(); 65 } 66 67 73 private void setup() { 74 LoginSequence loginSeq = new LoginSequence(); 75 boolean bWorked = loginSeq.runSequence(this); 76 if(bWorked) { 77 this.m_auth = loginSeq.getAuthInfo(); 78 } else { 79 System.exit(1); 80 } 81 82 } 83 84 87 public static String getUserDisplayName(String sPath) { 88 String sDisplayName = sPath; 89 VirtualFile vfPrincipal = ServerList.getInstance().getHarmoniseServer().getVFS().getVirtualFile(sPath).getResource(); 90 91 if(vfPrincipal!=null) { 92 if(vfPrincipal.getProperty(NamespaceType.OHRM.getURI(), "FNAME")!=null && vfPrincipal.getProperty(NamespaceType.OHRM.getURI(), "FNAME").getValues().size()>0) { 93 sDisplayName = ((StringValue) vfPrincipal.getProperty(NamespaceType.OHRM.getURI(), "FNAME").getValues().get(0)).getValue(); 94 } 95 if(vfPrincipal.getProperty(NamespaceType.OHRM.getURI(), "SNAME")!=null && vfPrincipal.getProperty(NamespaceType.OHRM.getURI(), "SNAME").getValues().size()>0) { 96 sDisplayName = sDisplayName + " " + ((StringValue) vfPrincipal.getProperty(NamespaceType.OHRM.getURI(), "SNAME").getValues().get(0)).getValue(); 97 } 98 if((vfPrincipal.getProperty(NamespaceType.OHRM.getURI(), "FNAME")==null || vfPrincipal.getProperty(NamespaceType.OHRM.getURI(), "FNAME").getValues().size()==0) && (vfPrincipal.getProperty(NamespaceType.OHRM.getURI(), "SNAME")==null || vfPrincipal.getProperty(NamespaceType.OHRM.getURI(), "SNAME").getValues().size()==0)) { 99 sDisplayName = vfPrincipal.getFileName(); 100 } 101 102 } else if(sPath.lastIndexOf("/")!=-1 && sPath.lastIndexOf("/")<sPath.length()) { 103 sDisplayName = sPath.substring(sPath.lastIndexOf("/")+1); 104 } 105 return sDisplayName; 106 } 107 108 109 110 113 public void addAuthentication(URI uri, AuthInfo authInfo) { 114 } 115 116 119 protected AuthInfo getAuthentication(String sURI) { 120 return this.m_auth; 121 } 122 123 126 public AuthInfo getAuthentication(URI uri) { 127 return this.m_auth; 128 } 129 130 136 public static boolean isSuperUser() { 137 boolean bRetn = false; 138 if(m_bSuperUserStatusChecked) { 139 bRetn = m_bIsSuperUser; 140 } else { 141 Server server = null; 142 server = ServerList.getInstance().getHarmoniseServer(); 143 URI uri = server.getURI(); 144 145 String sURI = uri.getScheme() + "://" + uri.getHost() + ":" + uri.getPort() + "/webdav/services/HarmoniseService"; 146 URL url = null; 147 try { 148 url = new URL(sURI); 149 } catch (MalformedURLException e2) { 150 e2.printStackTrace(); 151 System.exit(1); 152 } 153 154 AuthInfo auth = server.getVFS().getAuthentication(); 155 156 try { 157 m_bIsSuperUser = UserConfigClient.isSuperUser(url, auth.getUsername(), auth.getPassword()); 158 } catch (RemoteException e) { 159 e.printStackTrace(); 160 } catch (ServiceException e) { 161 e.printStackTrace(); 162 } 163 bRetn = m_bIsSuperUser; 164 m_bSuperUserStatusChecked = true; 165 } 166 return bRetn; 167 } 168 169 } 170 | Popular Tags |