2014-07-21 39 views
0

我正在研究一个小的Java EE项目,它将加入一个更大的项目。主要项目是使用maven和spring框架设计的。我不这样做,因为它确实是一个基本的。从spring项目到非弹簧项目的会话“user_id”

这里是我的问题:

主要项目使用公司的Active Directory和存储到春天已经登录的用户。代码如下所示:

@Configuration 
@EnableWebMvcSecurity 
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter { 

    private final String URL = "blablablabla"; 
    private final int PORT = 389; 
    private final String MANAGER_DN = "CN=blablablabla,OU=blablablabla,OU=blablablabla,OU=blablablabla,OU=blablablablaFund,OU=EBS,DC=blablablabla,DC=blablablabla,DC=blablablabla"; 
    private final String MANAGER_PASSWORD = "blablablabla"; 
    private final String GROUP_BASE = "OU=blablablabla,OU=blablablabla,OU=blablablabla,OU=blablablabla,DC=blablablabla,DC=blablablabla,DC=blablablabla"; 
    private final String USER_SEARCH_BASE = "DC=blablablabla,DC=blablablabla,DC=blablablabla"; 
    private final String USER_SEARCH_FILTER = "(sAMAccountName={0})"; 
    private final String GROUP_ROLE_ATTR = "blablablabla"; 
    private final String GROUP_SEARCH_FILTER = "(member={0})"; 
    private final String ROLE_LDIG_ALPHA = "blablablabla"; 

    @Override 
    @Autowired 
    protected void configure(AuthenticationManagerBuilder authManagerBuilder) throws Exception { 
     authManagerBuilder 
      .ldapAuthentication() 
       .userSearchBase(USER_SEARCH_BASE) 
       .userSearchFilter(USER_SEARCH_FILTER) 
       .groupRoleAttribute(GROUP_ROLE_ATTR) 
       .groupSearchFilter(GROUP_SEARCH_FILTER) 
       .groupSearchBase(GROUP_BASE) 
       .contextSource().url(URL).port(PORT).managerDn(MANAGER_DN).managerPassword(MANAGER_PASSWORD); 
    } 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http 
      .authorizeRequests() 
       .antMatchers("/**").hasRole(ROLE_LDIG_ALPHA) 
       .anyRequest().authenticated() 
       .and() 
      .formLogin() 
      .and() 
      .httpBasic(); 
    } 
} 

现在我需要从我的servlet例如检索用户的会话信息,而无需再次让用户日志(我再说一遍:我不使用Spring框架)

是这样可能?

回答

0

一个简单的实现是在认证处理项目中创建一个cookie并在其中存储相关的非敏感信息,然后在另一个项目中读取该cookie。

另一个实现是使用jndi来注册你的对象然后在其他需要的地方读取。