Changeset 4995
- Timestamp:
- 04/16/14 15:35:03 (10 years ago)
- Location:
- DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src
- Files:
-
- 1 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/Helpers.java
r4969 r4995 18 18 package eu.dasish.annotation.backend; 19 19 20 import eu.dasish.annotation.schema.Principal; 20 21 import java.io.ByteArrayInputStream; 21 22 import java.io.IOException; 22 23 import java.io.InputStream; 23 24 import java.util.Map; 24 import java.util.Set;25 25 import javax.xml.parsers.DocumentBuilder; 26 26 import javax.xml.parsers.DocumentBuilderFactory; 27 27 import javax.xml.parsers.ParserConfigurationException; 28 import org.s lf4j.Logger;28 import org.springframework.security.authentication.encoding.ShaPasswordEncoder; 29 29 import org.w3c.dom.Document; 30 30 import org.w3c.dom.Element; … … 74 74 return welcome; 75 75 } 76 77 public static Principal createPrincipalElement(String name, String e_mail) { 78 Principal result = new Principal(); 79 result.setDisplayName(name); 80 result.setEMail(e_mail); 81 return result; 82 } 83 84 public static String hashPswd(String pswd, int strength, String salt) { 85 ShaPasswordEncoder encoder = new ShaPasswordEncoder(strength); 86 return encoder.encodePassword(pswd, salt); 87 } 76 88 } -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/PrincipalExists.java
r4834 r4995 24 24 public class PrincipalExists extends Exception{ 25 25 26 public PrincipalExists(String email){27 super("The principal with the e-mail "+email+" already exists in the database and cannot be added now. Note, e-mail are case insensitive in the database. ");26 public PrincipalExists(String remoteID){ 27 super("The principal with the remoteID "+remoteID+" already exists in the database and cannot be added. "); 28 28 } 29 29 -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/DBIntegrityService.java
r4985 r4995 317 317 Number addPrincipal(Principal principal, String remoteID) throws NotInDataBaseException, PrincipalExists; 318 318 319 public int addSpringUser(String username, String password, int strength, String salt); 320 319 321 /// notebooks //// 320 322 Number createNotebook(Notebook notebook, Number ownerID) throws NotInDataBaseException; … … 322 324 boolean createAnnotationInNotebook(Number notebookID, Annotation annotation, Number ownerID) throws NotInDataBaseException; 323 325 324 public Principal createPrincipalRecord(String remoteID); 325 326 326 327 /** 327 328 * DELETERS -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/PrincipalDao.java
r4909 r4995 42 42 43 43 // where is it used?? 44 public boolean principalExists( Principal principal);44 public boolean principalExists(String remoteID); 45 45 46 46 public String getTypeOfPrincipalAccount(Number internalID); … … 59 59 public Number addPrincipal(Principal principal, String remoteID) throws NotInDataBaseException; 60 60 61 public int addSpringUser(String username, String password, int strength, String salt); 62 63 public int addSpringAuthorities(String username); 64 61 65 public int deletePrincipal(Number intenralID) throws PrincipalCannotBeDeleted; 62 66 63 public Principal createShibbolizedPrincipal(String remoteID);67 64 68 } -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/DBIntegrityServiceImlp.java
r4985 r4995 680 680 @Override 681 681 public Number addPrincipal(Principal principal, String remoteID) throws NotInDataBaseException, PrincipalExists { 682 if (principalDao.principalExists( principal)) {683 throw new PrincipalExists( principal.getEMail());682 if (principalDao.principalExists(remoteID)) { 683 throw new PrincipalExists(remoteID); 684 684 } else { 685 685 return principalDao.addPrincipal(principal, remoteID); … … 705 705 Number newAnnotationID = this.addPrincipalsAnnotation(ownerID, annotation); 706 706 return notebookDao.addAnnotationToNotebook(notebookID, newAnnotationID); 707 } 708 709 @Override 710 public int addSpringUser(String username, String password, int strength, String salt){ 711 int users = principalDao.addSpringUser(username, password, strength, salt); 712 int authorities = principalDao.addSpringAuthorities(username); 713 return users+authorities; 707 714 } 708 715 … … 850 857 } 851 858 852 @Override 853 public Principal createPrincipalRecord(String remoteID) { 854 return principalDao.createShibbolizedPrincipal(remoteID); 855 } 859 856 860 857 861 //// priveee /// -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcPrincipalDao.java
r4909 r4995 18 18 package eu.dasish.annotation.backend.dao.impl; 19 19 20 import eu.dasish.annotation.backend.Helpers; 20 21 import eu.dasish.annotation.backend.NotInDataBaseException; 21 22 import eu.dasish.annotation.backend.PrincipalCannotBeDeleted; … … 103 104 104 105 @Override 105 public boolean principalExists(Principal principal) { 106 107 String emailCriterion = principal.getEMail().toLowerCase(); 106 public boolean principalExists(String remoteID) { 107 108 108 StringBuilder sqlTargets = new StringBuilder("SELECT "); 109 sqlTargets.append(principal_id).append(" FROM ").append(principalTableName).append(" WHERE ").append( "LOWER(").append(e_mail).append(")= ? LIMIT 1");110 List<Number> result = this.loggedQuery(sqlTargets.toString(), internalIDRowMapper, emailCriterion);109 sqlTargets.append(principal_id).append(" FROM ").append(principalTableName).append(" WHERE ").append(remote_id).append("= ? LIMIT 1"); 110 List<Number> result = this.loggedQuery(sqlTargets.toString(), internalIDRowMapper, remoteID); 111 111 if (result.size() > 0) { 112 112 return true; … … 198 198 return getInternalID(externalIdentifier); 199 199 } 200 201 @Override 202 public int addSpringUser(String username, String password, int strength, String salt){ 203 Map<String, Object> params = new HashMap<String, Object>(); 204 params.put("username", username); 205 params.put("password", Helpers.hashPswd(password, strength, salt)); 206 StringBuilder sql = new StringBuilder("INSERT INTO "); 207 sql.append(springUserTableName).append("(").append(springUsername).append(","). 208 append(springPassword).append(") VALUES (:username, :password)"); 209 final int affectedRows = this.loggedUpdate(sql.toString(), params); 210 return affectedRows; 211 } 212 213 @Override 214 public int addSpringAuthorities(String username){ 215 Map<String, Object> params = new HashMap<String, Object>(); 216 params.put("username", username); 217 StringBuilder sql = new StringBuilder("INSERT INTO "); 218 sql.append(springAuthoritiesTableName).append("(").append(springUsername).append(") VALUES (:username)"); 219 final int affectedRows = this.loggedUpdate(sql.toString(), params); 220 return affectedRows; 221 } 200 222 201 223 ////////// UPDATERS /////////////////////// … … 232 254 } 233 255 234 @Override 235 public Principal createShibbolizedPrincipal(String remoteID) { 236 Principal result = new Principal(); 237 result.setDisplayName(remoteID); 238 result.setEMail(remoteID); 239 return result; 240 } 256 241 257 242 258 ////// DELETERS //////////// -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/dao/impl/JdbcResourceDao.java
r4941 r4995 50 50 final static protected String versionTableName = "version"; 51 51 final static protected String principalTableName = "principal"; 52 final static protected String springUserTableName = "users"; 53 final static protected String springAuthoritiesTableName = "authorities"; 52 54 // joint tablenames 53 55 final static protected String notebooksAnnotationsTableName = "notebooks_annotations"; … … 57 59 final static protected String targetsCachedRepresentationsTableName = "targets_cached_representations"; 58 60 // base string constants: field Names 61 final static protected String springUsername = "username"; 62 final static protected String springPassword = "password"; 59 63 final static protected String account = "account"; 60 64 final static protected String admin = "admin"; -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/rest/AutheticationResource.java
r4985 r4995 75 75 httpServletResponse.sendRedirect(context.getInitParameter("eu.dasish.annotation.backend.logout")); 76 76 } 77 78 77 79 } -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/rest/PrincipalResource.java
r4969 r4995 138 138 139 139 @POST 140 @Produces(MediaType.TEXT_PLAIN) 141 @Path("create/{remoteId}/{password}") 142 public String createSpringAuthenticationRecord(@PathParam("remoteId") String remoteId, @PathParam("password") String password) throws IOException { 143 int result = dbIntegrityService.addSpringUser(remoteId, password, 512, remoteId); 144 return result+ " record(s) has been added. Must be 2: 1 record for the principal, another for the authorities table."; 145 } 146 147 @POST 140 148 @Consumes(MediaType.APPLICATION_XML) 141 149 @Produces(MediaType.APPLICATION_XML) … … 251 259 loggerServer.debug(e2.toString());; 252 260 httpServletResponse.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e2.toString()); 253 return "Nothi sis deleted.";261 return "Nothing is deleted."; 254 262 } 255 263 } catch (NotInDataBaseException e) { -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/java/eu/dasish/annotation/backend/rest/ResourceResource.java
r4985 r4995 18 18 package eu.dasish.annotation.backend.rest; 19 19 20 import eu.dasish.annotation.backend.Helpers; 20 21 import eu.dasish.annotation.backend.NotInDataBaseException; 21 22 import eu.dasish.annotation.backend.PrincipalExists; 22 23 import eu.dasish.annotation.backend.dao.DBIntegrityService; 24 import eu.dasish.annotation.schema.Principal; 23 25 import java.io.IOException; 24 26 import javax.servlet.ServletContext; … … 70 72 try { 71 73 try { 72 return dbIntegrityService.addPrincipal(dbIntegrityService.createPrincipalRecord(remotePrincipal), remotePrincipal); 74 Principal newPrincipal = Helpers.createPrincipalElement(remotePrincipal, remotePrincipal); 75 return dbIntegrityService.addPrincipal(newPrincipal, remotePrincipal); 73 76 } catch (PrincipalExists e2) { 74 77 loggerServer.info(e2.toString()); -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/main/resources/spring-config/springSecurity.xml
r4985 r4995 21 21 22 22 <beans xmlns="http://www.springframework.org/schema/beans" 23 xmlns:security="http://www.springframework.org/schema/security"24 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"25 xsi:schemaLocation="http://www.springframework.org/schema/beans23 xmlns:security="http://www.springframework.org/schema/security" 24 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 25 xsi:schemaLocation="http://www.springframework.org/schema/beans 26 26 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 27 27 http://www.springframework.org/schema/security 28 28 http://www.springframework.org/schema/security/spring-security-3.2.xsd"> 29 <security:http auto-config='true'> 29 30 <bean id="passwordEncoderBean" class="org.springframework.security.authentication.encoding.ShaPasswordEncoder"> 31 <constructor-arg value="512" /> 32 </bean> 33 34 <security:http> 30 35 <security:intercept-url pattern="/api/authentication/login" access="ROLE_USER" /> 31 36 <security:http-basic /> 32 37 <security:logout delete-cookies="JSESSIONID"/> 33 38 </security:http> 39 34 40 <security:authentication-manager> 35 41 <security:authentication-provider> 36 <security:user-service> 37 <security:user name="olhsha" password="olhapassword" authorities="ROLE_USER, ROLE_ADMIN" /> 38 </security:user-service> 42 <security:password-encoder ref="passwordEncoderBean"> 43 <security:salt-source user-property="username"/> 44 </security:password-encoder> 45 <security:jdbc-user-service data-source-ref="dataSource"/> 39 46 </security:authentication-provider> 40 </security:authentication-manager> 47 </security:authentication-manager> 48 41 49 </beans> 42 50 -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/dao/impl/DBIntegrityServiceTest.java
r4887 r4995 879 879 mockeryDao.checking(new Expectations() { 880 880 { 881 oneOf(principalDao).principalExists( freshPrincipal);881 oneOf(principalDao).principalExists("guisil@mpi.nl"); 882 882 will(returnValue(false)); 883 883 … … 896 896 mockeryDao.checking(new Expectations() { 897 897 { 898 oneOf(principalDao).principalExists( principal);898 oneOf(principalDao).principalExists("olhsha@mpi.nl"); 899 899 will(returnValue(true)); 900 900 -
DASISH/t5.6/backend/annotator-backend/trunk/annotator-backend/src/test/java/eu/dasish/annotation/backend/dao/impl/JdbcPrincipalDaoTest.java
r4909 r4995 18 18 package eu.dasish.annotation.backend.dao.impl; 19 19 20 import eu.dasish.annotation.backend.Helpers; 20 21 import eu.dasish.annotation.backend.NotInDataBaseException; 21 22 import eu.dasish.annotation.backend.PrincipalCannotBeDeleted; … … 152 153 public void tesPrincipalExists() { 153 154 System.out.println("test principalExists"); 154 jdbcPrincipalDao.setServiceURI(TestBackendConstants._TEST_SERVLET_URI_principals); 155 156 Principal freshPrincipal = new Principal(); 157 freshPrincipal.setDisplayName("Guilherme"); 158 freshPrincipal.setEMail("guisil@mpi.nl"); 159 assertEquals(false,jdbcPrincipalDao.principalExists(freshPrincipal)); 160 161 Principal principal = new Principal(); 162 principal.setDisplayName("Olha"); 163 principal.setEMail("Olha.Shakaravska@mpi.nl"); 164 assertTrue(jdbcPrincipalDao.principalExists(principal)); 155 //jdbcPrincipalDao.setServiceURI(TestBackendConstants._TEST_SERVLET_URI_principals); 156 assertEquals(false,jdbcPrincipalDao.principalExists("guisil@mpi.nl")); 157 assertTrue(jdbcPrincipalDao.principalExists("olhsha@mpi.nl")); 165 158 } 166 159 … … 178 171 } 179 172 180 @Test 181 public void testCreateShibbolizedPrincipal(){ 182 System.out.println("test createShibbolizedPrincipal"); 183 Principal result = jdbcPrincipalDao.createShibbolizedPrincipal("test.user@mail.com"); 184 assertEquals("test.user@mail.com", result.getDisplayName()); 185 assertEquals("test.user@mail.com", result.getEMail()); 173 @Test 174 public void generateHashes() { 175 System.out.println("*****"); 176 System.out.println("generate hashes"); 177 System.out.println(Helpers.hashPswd("1234", 512, "olhsha@mpi.nl")); 178 System.out.println(Helpers.hashPswd("5678", 512, "olasei@mpi.nl")); 179 System.out.println("*****"); 180 186 181 } 187 182
Note: See TracChangeset
for help on using the changeset viewer.