2017-03-07 94 views
0

我有一个Spring Boot启用的应用程序,其登录由第三方Siteminder应用程序控制。成功验证后,Sitemeinder将重定向到我们的应用程序url。我们从Siteminder获取HttpRequest并处理请求。如何为使用第三方登录的应用程序启用Spring Security?

现在,在这种情况下,如何根据角色授权用户来启用Spring安全性。

@Controller 
public class LoginController 

@RequestMapping(value= "/") 
public void requestProcessor(HttpServletRequest request) 
{ 
. 
. 
.} 

上述控制器的请求映射器读取的SiteMinder来的请求,并处理其中有用户登录,我们可以在哪里春季安全启用授权页面和服务方式,以用户的角色要求。

回答

-1

取决于你在会话中得到什么。

@Autowired 
AuthenticationManager authenticationManager; 
... 

public boolean autoLogin(String username, String password) { 
    UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password); 
    Authentication auth = authenticationManager.authenticate(token); 

    if (auth.isAuthenticated()) { 
     logger.debug("Succeed to auth user: " + username); 
     SecurityContextHolder.getContext().setAuthentication(auth); 
     return true; 
    } 

    return false; 
} 
+0

的SiteMinder不回密码,它认证自己,并提供标题信息,如用户名,角色等 – rinuthomaz

+0

@GVART正如我的队友在上面评论中提到的,我们没有得到用户的密码请求对象。 – Chandan

+0

这不安全 – jny

0

Spring Security的过程要求它得到您的控制器在春季安全配置配置filter前:如果以某种方式ü可以从会议采取用户名和密码就可以直接从代码作为用户进行身份验证。 有关于如何使用SiteMinder配置弹簧安全性的文档。

在配置的规则将定义资源的访问进行

相关问题