我是第一次尝试 spring security,但由于某种原因,我编写的身份验证机制没有触发 -
使用的技术 - Spring 4.2.1、spring-security、jetty 容器、jersey 和 couchbase DB
安全配置.java -
@Configuration
@EnableWebSecurity
@ComponentScan(basePackageClasses={UserRepository.class, MyUserDetailService.class})
public class SecurityConfig extends WebSecurityConfigurerAdapter{
@Autowired
@Qualifier("userDetailsService")
UserDetailsService userDetailsService;
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.httpBasic();
// For later
//
// http.authorizeRequests().antMatchers("/*")
// .access("hasRole('ROLE_ADMIN')");
}
@Bean
public PasswordEncoder passwordEncoder(){
PasswordEncoder encoder = new BCryptPasswordEncoder();
return encoder;
}
Run Code Online (Sandbox Code Playgroud)
SecurityWebAppInitializer.java -
public class SecurityWebApplicationInitializer
extends AbstractSecurityWebApplicationInitializer …Run Code Online (Sandbox Code Playgroud) 我有一个包含对象数组的Josn文件,例如:
{
"tId": "Something",
"StartTime": "05/29/2013 5:28:33 PM",
"CompleteTime": "05/29/2013 5:28:33 PM",
"Status": "success",
"MachineName": "Machine",
},
Run Code Online (Sandbox Code Playgroud)
我必须根据开始时间和机器名称进行排序,并仅向用户显示这两件事.如果2个或更多任务的开始时间相同,那么应根据机器名称对这些任务的结果进行排序.我试图将解析后得到的JsonArray转换为List并在此之后使用自定义collections.sort.我正朝着正确的方向前进吗?如果在相同的开始时间内如何修改Collections.sort中的比较器以根据机器名称进行排序
JsonArray allTasks = jsonParser.parse(reader).getAsJsonArray();
ArrayList<String> list = new ArrayList<String>();
if (allTasks != null) {
int len = allTasks.size();
for (int i=0;i<len;i++){
list.add(allTasks .get(i).toString());
}
}
for (String task : list) {
// code to fetch just 2 fields from this task and then sort according to start time
}
Run Code Online (Sandbox Code Playgroud)