Liang Yong Rui avatar Liang Yong Rui committed 59a9ba3

增加在taobao用户第一次登录的处理机制:LocalTaobaoAccountNotFoundHandler

Comments (0)

Files changed (2)

SpringSecurityTaobaoGrailsPlugin.groovy

 import org.codehaus.groovy.grails.plugins.springsecurity.SecurityFilterPosition
 import org.codehaus.groovy.grails.plugins.springsecurity.SpringSecurityUtils
 
+import com.mingidea.security.taobao.NullLocalTaobaoAccountNotFoundHandler
 import com.mingidea.security.taobao.TaobaoAuthenticationProcessingFilter
 import com.mingidea.security.taobao.TaobaoAuthenticationProvider
 import com.mingidea.security.taobao.TaobaoAuthenticationUserDetailsService
         SpringSecurityUtils.registerProvider 'taobaoAuthenticationProvider'
         SpringSecurityUtils.registerFilter 'taobaoAuthenticationFilter', SecurityFilterPosition.OPENID_FILTER
 
-        
+
         taobaoAuthenticationProvider(TaobaoAuthenticationProvider) {
             appSecretMap = conf.taobao.appSecretMap
-            authenticationUserDetailsService = ref(authenticationUserDetailsService)
+            authenticationUserDetailsService = ref('taobaoAuthenticationUserDetailsService')
         }
-        
+
         taobaoAuthenticationFilter(TaobaoAuthenticationProcessingFilter){
             authenticationManager = ref('authenticationManager')
             sessionAuthenticationStrategy = ref('sessionAuthenticationStrategy')
         }
+
+        taobaoAuthenticationUserDetailsService(TaobaoAuthenticationUserDetailsService) {
+            grailsApplication = ref('grailsApplication')
+            localTaobaoAccountNotFoundHandler = ref('localTaobaoAccountNotFoundHandler')
+        }
         
-
-        // custom subclass that searches by username and taobaoAccount
-        authenticationUserDetailsService(TaobaoAuthenticationUserDetailsService) { grailsApplication = ref('grailsApplication') }
+        //always return null
+        localTaobaoAccountNotFoundHandler(NullLocalTaobaoAccountNotFoundHandler)
     }
 
     def doWithApplicationContext = { applicationContext ->

src/java/com/mingidea/security/taobao/NullLocalTaobaoAccountNotFoundHandler.groovy

+package com.mingidea.security.taobao
+
+class NullLocalTaobaoAccountNotFoundHandler implements LocalTaobaoAccountNotFoundHandler {
+
+    /**
+     * always return null.
+     */
+    @Override
+    public Object handle(String taobaoNick, String session) {
+        return null;
+    }
+}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.