我正在开发一个小型Java EE项目,它将加入一个更大的项目。主要项目是使用maven和spring框架设计的。我不是因为它真的是一个基本的。
这是我的问题:
主项目已使用公司的Active Directory记录用户并将其存储到spring。代码如下所示:
@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 :(得分:0)
一个简单的实现是在身份验证处理项目中创建一个cookie并在其中存储相关的非敏感信息,然后在另一个项目中读取cookie。
另一个实现是使用jndi来注册你的对象,然后在其他需要的位置读取。