1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.shiro.samples;
20
21 import org.apache.shiro.SecurityUtils;
22 import org.apache.shiro.subject.PrincipalCollection;
23 import org.apache.shiro.subject.Subject;
24 import org.apache.shiro.util.CollectionUtils;
25 import org.springframework.stereotype.Controller;
26 import org.springframework.ui.Model;
27 import org.springframework.web.bind.annotation.RequestMapping;
28
29 import javax.servlet.http.HttpServletRequest;
30 import java.util.Collection;
31 import java.util.Map;
32
33 @Controller
34 public class HelloController {
35
36 @SuppressWarnings("Duplicates")
37 @RequestMapping("/")
38 public String home(HttpServletRequest request, Model model) {
39
40 String name = "World";
41
42 Subject subject = SecurityUtils.getSubject();
43
44 PrincipalCollection principalCollection = subject.getPrincipals();
45
46 if (principalCollection != null && !principalCollection.isEmpty()) {
47 Collection<Map> principalMaps = subject.getPrincipals().byType(Map.class);
48 if (CollectionUtils.isEmpty(principalMaps)) {
49 name = subject.getPrincipal().toString();
50 }
51 else {
52 name = (String) principalMaps.iterator().next().get("username");
53 }
54 }
55
56 model.addAttribute("name", name);
57
58 return "hello";
59 }
60
61 }