Changeset 28210 for main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/Authentication.java
- Timestamp:
- 2013-09-04T15:19:34+12:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/Authentication.java
r28202 r28210 128 128 protected static final String GET_USER_INFORMATION_SERVICE = "GetUserInformation"; 129 129 130 protected static DerbyWrapper _derbyWrapper = null;131 130 protected static boolean _derbyWrapperDoneForcedShutdown = false; 132 131 … … 157 156 158 157 DerbyWrapper.shutdownDatabaseServer(); 159 _derbyWrapper = null;160 158 _derbyWrapperDoneForcedShutdown = true; 161 159 } … … 271 269 } 272 270 273 openDatabase();271 DerbyWrapper derbyWrapper = openDatabase(); 274 272 275 273 try 276 274 { 277 UserQueryResult userQueryResult = _derbyWrapper.findUser(username);275 UserQueryResult userQueryResult = derbyWrapper.findUser(username); 278 276 279 277 Vector<UserTermInfo> terms = userQueryResult.getUserTerms(); … … 282 280 { 283 281 GSXML.addError(this.doc, result, _errorMessageMap.get(ERROR_REQUESTED_USER_NOT_FOUND)); 284 closeDatabase();285 282 return result; 286 283 } … … 308 305 } 309 306 310 closeDatabase();307 derbyWrapper.closeDatabase(); 311 308 312 309 return result; … … 664 661 } 665 662 663 DerbyWrapper derbyWrapper = openDatabase(); 666 664 String chpa_groups = retrieveDataForUser(user_name, "groups"); 667 665 String chpa_comment = "password_changed_by_user"; 668 String info = this._derbyWrapper.modifyUserInfo(user_name, hashPassword(newPassword), chpa_groups, null, chpa_comment, null); 666 String info = derbyWrapper.modifyUserInfo(user_name, hashPassword(newPassword), chpa_groups, null, chpa_comment, null); 667 derbyWrapper.closeDatabase(); 669 668 if (info != "succeed") 670 669 {//see DerbyWrapper.modifyUserInfo … … 820 819 private void checkAdminUserExists() 821 820 { 822 openDatabase();823 824 UserQueryResult userQueryResult = _derbyWrapper.findUser(null, null);821 DerbyWrapper derbyWrapper = openDatabase(); 822 UserQueryResult userQueryResult = derbyWrapper.findUser(null, null); 823 derbyWrapper.closeDatabase(); 825 824 826 825 if (userQueryResult != null) … … 842 841 } 843 842 } 844 845 closeDatabase(); 846 } 847 848 private boolean openDatabase() 849 { 850 if (_derbyWrapper == null) 851 { 852 // check the usersDb database, if it isn't existing, check the etc dir, create the etc dir if it isn't existing, then create the user database and add a "admin" user 853 String usersDB_dir = GlobalProperties.getGSDL3Home() + File.separatorChar + "etc" + File.separatorChar + "usersDB"; 854 855 _derbyWrapper = new DerbyWrapper(usersDB_dir); 856 857 File usersDB_file = new File(usersDB_dir); 858 if (!usersDB_file.exists()) 859 { 860 String etc_dir = GlobalProperties.getGSDL3Home() + File.separatorChar + "etc"; 861 File etc_file = new File(etc_dir); 862 if (!etc_file.exists()) 863 { 864 boolean success = etc_file.mkdir(); 865 if (!success) 866 { 867 logger.error("Couldn't create the etc dir under " + GlobalProperties.getGSDL3Home() + "."); 868 return false; 869 } 870 } 871 _derbyWrapper.createDatabase(); 872 } 873 } 874 875 return true; 876 } 877 878 private void closeDatabase() 879 { 880 if (_derbyWrapper != null) 881 { 882 _derbyWrapper.closeDatabase(); 883 _derbyWrapper = null; 884 } 843 } 844 845 private DerbyWrapper openDatabase() 846 { 847 // check the usersDb database, if it isn't existing, check the etc dir, create the etc dir if it isn't existing, then create the user database and add a "admin" user 848 String usersDB_dir = GlobalProperties.getGSDL3Home() + File.separatorChar + "etc" + File.separatorChar + "usersDB"; 849 850 DerbyWrapper derbyWrapper = new DerbyWrapper(usersDB_dir); 851 852 File usersDB_file = new File(usersDB_dir); 853 if (!usersDB_file.exists()) 854 { 855 String etc_dir = GlobalProperties.getGSDL3Home() + File.separatorChar + "etc"; 856 File etc_file = new File(etc_dir); 857 if (!etc_file.exists()) 858 { 859 boolean success = etc_file.mkdir(); 860 if (!success) 861 { 862 logger.error("Couldn't create the etc dir under " + GlobalProperties.getGSDL3Home() + "."); 863 return null; 864 } 865 } 866 derbyWrapper.createDatabase(); 867 } 868 869 return derbyWrapper; 885 870 } 886 871 887 872 private int addUserInformationToNode(String username, Element serviceNode) 888 873 { 889 openDatabase();890 891 UserQueryResult userQueryResult = _derbyWrapper.findUser(username, null);874 DerbyWrapper derbyWrapper = openDatabase(); 875 UserQueryResult userQueryResult = derbyWrapper.findUser(username, null); 876 derbyWrapper.closeDatabase(); 892 877 893 878 if (userQueryResult != null) … … 895 880 Element user_node = getUserNode(userQueryResult); 896 881 serviceNode.appendChild(user_node); 897 closeDatabase();898 882 return NO_ERROR; 899 883 } 900 884 901 closeDatabase();902 885 return ERROR_COULD_NOT_GET_USER_INFO; 903 886 } … … 910 893 } 911 894 912 openDatabase();913 914 boolean success = _derbyWrapper.deleteUser(username);895 DerbyWrapper derbyWrapper = openDatabase(); 896 boolean success = derbyWrapper.deleteUser(username); 897 derbyWrapper.closeDatabase(); 915 898 916 899 if (success) 917 900 { 918 closeDatabase();919 901 return NO_ERROR; 920 902 } 921 903 922 closeDatabase();923 904 return ERROR_REMOVING_USER; 924 905 } … … 926 907 private int addUser(String newUsername, String newPassword, String newGroups, String newStatus, String newComment, String newEmail) 927 908 { 928 openDatabase();929 930 909 newGroups = newGroups.replaceAll(" ", ""); 931 910 932 911 //Check if the user already exists 933 UserQueryResult userQueryResult = _derbyWrapper.findUser(newUsername, null); 912 DerbyWrapper derbyWrapper = openDatabase(); 913 UserQueryResult userQueryResult = derbyWrapper.findUser(newUsername, null); 934 914 935 915 if (userQueryResult != null) 936 916 { 937 closeDatabase();917 derbyWrapper.closeDatabase(); 938 918 return ERROR_USER_ALREADY_EXISTS; 939 919 } … … 941 921 { 942 922 System.err.println("ADDING " + newUsername + " " + newPassword); 943 boolean success = _derbyWrapper.addUser(newUsername, newPassword, newGroups, newStatus, newComment, newEmail); 923 boolean success = derbyWrapper.addUser(newUsername, newPassword, newGroups, newStatus, newComment, newEmail); 924 derbyWrapper.closeDatabase(); 925 944 926 if (!success) 945 927 { 946 closeDatabase();947 928 return ERROR_ADDING_USER; 948 929 } 949 930 } 950 931 951 closeDatabase();952 932 return NO_ERROR; 953 933 } … … 957 937 boolean check_status = false; 958 938 959 openDatabase(); 960 939 DerbyWrapper derbyWrapper = openDatabase(); 961 940 try 962 941 { 963 UserQueryResult result = _derbyWrapper.findUser(username);942 UserQueryResult result = derbyWrapper.findUser(username); 964 943 965 944 if (result != null) … … 974 953 ex.printStackTrace(); 975 954 } 976 977 closeDatabase(); 955 derbyWrapper.closeDatabase(); 956 978 957 return check_status; 979 958 } … … 987 966 try 988 967 { 989 UserQueryResult result = _derbyWrapper.findUser(username); 968 DerbyWrapper derbyWrapper = openDatabase(); 969 UserQueryResult result = derbyWrapper.findUser(username); 970 derbyWrapper.closeDatabase(); 990 971 Vector userInfo = result.users; 991 972 … … 1024 1005 } 1025 1006 1026 closeDatabase();1027 1007 return data; 1028 1008 }
Note:
See TracChangeset
for help on using the changeset viewer.