Browse Source

三方登陆

haha600 5 years ago
parent
commit
6c1c20c5ec

+ 13 - 1
src/main/java/com/kingkong/bljs/controller/MainController.java

@@ -1,5 +1,8 @@
1
 package com.kingkong.bljs.controller;
1
 package com.kingkong.bljs.controller;
2
 
2
 
3
+import com.kingkong.bljs.dao.ClientMapper;
4
+import com.kingkong.bljs.entity.Client;
5
+import org.springframework.beans.factory.annotation.Autowired;
3
 import org.springframework.security.oauth2.provider.AuthorizationRequest;
6
 import org.springframework.security.oauth2.provider.AuthorizationRequest;
4
 import org.springframework.stereotype.Controller;
7
 import org.springframework.stereotype.Controller;
5
 import org.springframework.web.bind.annotation.*;
8
 import org.springframework.web.bind.annotation.*;
@@ -14,13 +17,22 @@ import java.util.Map;
14
 @SessionAttributes({ "authorizationRequest" })
17
 @SessionAttributes({ "authorizationRequest" })
15
 public class MainController {
18
 public class MainController {
16
 
19
 
20
+    @Autowired
21
+    private ClientMapper clientMapper;
17
 
22
 
18
     @GetMapping("/login")
23
     @GetMapping("/login")
19
     public ModelAndView login(@RequestParam(name="error",required=false)String error,
24
     public ModelAndView login(@RequestParam(name="error",required=false)String error,
20
-                              @RequestParam(name="logout",required=false)String logout) {
25
+                              @RequestParam(name="logout",required=false)String logout,
26
+                              Map<String, Object> model) {
27
+        AuthorizationRequest authorizationRequest = (AuthorizationRequest) model.get("authorizationRequest");
28
+        String clientId = authorizationRequest.getClientId();
29
+
30
+        Client client = clientMapper.selectByPrimaryKey(clientId);
31
+
21
         ModelAndView page = new ModelAndView();
32
         ModelAndView page = new ModelAndView();
22
         page.setViewName("login");
33
         page.setViewName("login");
23
         page.addObject("error",error);
34
         page.addObject("error",error);
35
+        page.addObject("app_id",client.getAppId());
24
         return page;
36
         return page;
25
     }
37
     }
26
 
38
 

+ 6 - 2
src/main/java/com/kingkong/bljs/security/CustomUserDetailsService.java

@@ -9,9 +9,13 @@ import org.springframework.beans.factory.annotation.Value;
9
 import org.springframework.security.core.userdetails.UserDetails;
9
 import org.springframework.security.core.userdetails.UserDetails;
10
 import org.springframework.security.core.userdetails.UserDetailsService;
10
 import org.springframework.security.core.userdetails.UserDetailsService;
11
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
11
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
12
+import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer;
13
+import org.springframework.security.oauth2.provider.ClientDetails;
14
+import org.springframework.security.oauth2.provider.client.BaseClientDetails;
12
 import org.springframework.stereotype.Component;
15
 import org.springframework.stereotype.Component;
13
 
16
 
14
 import javax.servlet.http.HttpServletRequest;
17
 import javax.servlet.http.HttpServletRequest;
18
+import javax.servlet.http.HttpSession;
15
 import java.util.*;
19
 import java.util.*;
16
 
20
 
17
 /**
21
 /**
@@ -39,8 +43,7 @@ public class CustomUserDetailsService implements UserDetailsService {
39
     @Value("${app.default.app_id}")
43
     @Value("${app.default.app_id}")
40
     private String default_app_id;
44
     private String default_app_id;
41
 
45
 
42
-    @Autowired
43
-    private CustomAuthenticationDetailsSource customAuthenticationDetailsSource;
46
+
44
 
47
 
45
 
48
 
46
 
49
 
@@ -49,6 +52,7 @@ public class CustomUserDetailsService implements UserDetailsService {
49
 
52
 
50
         Map user = queryService.first(k_user,"name=" + s);
53
         Map user = queryService.first(k_user,"name=" + s);
51
 
54
 
55
+
52
         if(null == user )
56
         if(null == user )
53
             throw new UsernameNotFoundException("用户不存在!");
57
             throw new UsernameNotFoundException("用户不存在!");
54
 
58
 

+ 1 - 0
src/main/resources/templates/login.html

@@ -22,6 +22,7 @@
22
         <h2>中联医院信息管理系统登录</h2>
22
         <h2>中联医院信息管理系统登录</h2>
23
         <div class="alert alert-danger" role="alert" th:text="${error}" th:if="${error}"></div>
23
         <div class="alert alert-danger" role="alert" th:text="${error}" th:if="${error}"></div>
24
         <form class="form-horizontal" method="post" action="" id="login-form">
24
         <form class="form-horizontal" method="post" action="" id="login-form">
25
+            <input type="hidden" name="app_id" th:value="${app_id}" />
25
             <div class="form-group col-xs-11">
26
             <div class="form-group col-xs-11">
26
                 <label for="exampleInputEmail1">用户名</label>
27
                 <label for="exampleInputEmail1">用户名</label>
27
                 <input type="text" class="form-control" name="username" id="username" placeholder="用户名">
28
                 <input type="text" class="form-control" name="username" id="username" placeholder="用户名">