Commits

Liang Yong Rui committed 59a9ba3

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

  • Participants
  • Parent commits 5b02b2c

Comments (0)

Files changed (2)

File 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 ->

File 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;
+    }
+}