Pobranie nazwy użytkownika przy logowaniu Spring Security

Odpowiedz Nowy wątek
2014-12-18 00:18
0

Witam mam mały problem: loguję się do aplikacji wszystko działa poprawnie i chciałbym pobrać login tego mojego user'a żeby wyświetlić na konsolę lecz nie bardzo mi to wychodzi :/
widok logowania:

<form name='f'
                    action='${pageContext.request.contextPath}/j_spring_security_check' 
                    method='post'>
                    <table>
                        <tr>
                            <td>Login:</td>
                            <td><input type='text' name='j_username' value=''></td>
                        </tr>
                        <tr>
                            <td>Hasło:</td>
                            <td><input type='password' name='j_password' /></td>
                        </tr>
                        <tr>
                        <td></td>
                            <td colspan='2'><input name="submit" type="submit"
                                value="Zaloguj" /></td>
                        </tr>
                    </table>
                </form>

Kontroler:

@RequestMapping(value = "/login", method = RequestMethod.GET)
    public String showLogin(){
 
        return "login";
    }
 
    @RequestMapping(value = "/j_spring_security_check", method = RequestMethod.POST)
    public void showLoginn(){
         Authentication auth = SecurityContextHolder.getContext().getAuthentication();
         String name = auth.getName();
        System.out.println("Username: " + name);
 
    }

Różne kombinację robiłem w tym żądaniu POST jednak na marne :/

Pozostało 580 znaków

2014-12-20 01:02
Zimny Samiec
0

Do metody kontrolera dodaj parametr klasy Principal. Ta klasa ma metodę getName zwracająca nazwę zalogowanego użytkownika.

Pozostało 580 znaków

2014-12-22 15:54
0

Tu masz przykład:

@RequestMapping("/account")
public String account(Model model, Principal principal) {
     String userName = principal.getName();
     model.addAttribute("blog", new RssFeedEntity());
     model.addAttribute("user", userService.findOneWithAllBlogs(userName));
     return "account";
}

Czyli tak jak kolega napisał, przekazujesz w parametrze objekt klasy Principal i pobierasz nazwę zalogowanego użytkownika poprzez: principal.getName().

edytowany 2x, ostatnio: bakeraw2, 2014-12-22 15:57

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0