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 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 6
 import org.springframework.security.oauth2.provider.AuthorizationRequest;
4 7
 import org.springframework.stereotype.Controller;
5 8
 import org.springframework.web.bind.annotation.*;
@@ -14,13 +17,22 @@ import java.util.Map;
14 17
 @SessionAttributes({ "authorizationRequest" })
15 18
 public class MainController {
16 19
 
20
+    @Autowired
21
+    private ClientMapper clientMapper;
17 22
 
18 23
     @GetMapping("/login")
19 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 32
         ModelAndView page = new ModelAndView();
22 33
         page.setViewName("login");
23 34
         page.addObject("error",error);
35
+        page.addObject("app_id",client.getAppId());
24 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 9
 import org.springframework.security.core.userdetails.UserDetails;
10 10
 import org.springframework.security.core.userdetails.UserDetailsService;
11 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 15
 import org.springframework.stereotype.Component;
13 16
 
14 17
 import javax.servlet.http.HttpServletRequest;
18
+import javax.servlet.http.HttpSession;
15 19
 import java.util.*;
16 20
 
17 21
 /**
@@ -39,8 +43,7 @@ public class CustomUserDetailsService implements UserDetailsService {
39 43
     @Value("${app.default.app_id}")
40 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 53
         Map user = queryService.first(k_user,"name=" + s);
51 54
 
55
+
52 56
         if(null == user )
53 57
             throw new UsernameNotFoundException("用户不存在!");
54 58
 

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

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