part 2 of preliminary solution to #4053 (Transient field User.authorities not refresh...
authorAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Mon, 10 Feb 2014 18:22:57 +0000 (18:22 +0000)
committerAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Mon, 10 Feb 2014 18:22:57 +0000 (18:22 +0000)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/LoginManager.java

index 8246dc63c39d3deb10e030e4b1bdb895d2668d70..beb18fbc3289985b09fb7f512e40d07d99b61dfc 100644 (file)
@@ -70,14 +70,18 @@ public class LoginManager extends Observable implements IConversationEnabled, IC
                        UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password);                        
                        Authentication authentication = CdmStore.getAuthenticationManager().authenticate(token);
                        
+                       User user = (User) authentication.getPrincipal();
+                       /* circumventing problem with hibernate not refreshing the transient collection authorities in this case,
+                        * see http://dev.e-taxonomy.eu/trac/ticket/4053 */
+                       user.initAuthorities(); 
+                       
                        if(logger.isDebugEnabled()){
-                               User user = (User) authentication.getPrincipal();
                                StringBuilder gaText = new StringBuilder();
                                String indent = "    ";
                                Set<GrantedAuthority> gaSet = user.getGrantedAuthorities();
                                _logGrantedAuthotities(gaText, indent, gaSet);
                                for(Group gr : user.getGroups()){
-                                       gaText.append(indent).append("gr[").append(gr.hashCode()).append("] ").append(gr.getName()).append(gr.toString()).append("\n");
+                                       gaText.append(indent).append("gr[").append(gr.hashCode()).append("] \"").append(gr.getName()).append("\" ").append(gr.toString()).append("\n");
                                        _logGrantedAuthotities(gaText, indent + indent, gr.getGrantedAuthorities());
                                }
                                logger.debug("User authenticated: " + user.getUsername() + "\n" + gaText.toString());