使用spring保护单页应用程序

时间:2015-06-05 17:46:09

标签: javascript spring spring-security

我在js中创建了一个单页面应用程序,我还使用了一些jquery命令和twitter bootstrap。

我以这种方式为我的页面充电

$('#contact').click(function () {
    $('#main').load('contact.html');
});

我在服务器上使用spring java并使用其他完整架构。

是否有一种简单的方法来保护我的网页使用这些框架?

1 个答案:

答案 0 :(得分:1)

我认为,最好的方法是添加Spring安全依赖关系,您可以完全控制服务REST并与OAuth,Social(Facebook,Twitter ......)等多个模块集成。多得多。 使用Spring Security,您可以配置配置Java类或XML的权限

享受样品:

@Configuration    @EnableWebSecurity    @Import({ConfigDAO.class,ConfigService.class})    公共类WebSecurityConfig扩展了WebSecurityConfigurerAdapter {

@Autowired
private DataSource datasource;

@Autowired
private PasswordEncoder passwordEncoder;

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
    auth
    .jdbcAuthentication()
    .dataSource(datasource)
    .passwordEncoder(passwordEncoder)
    .usersByUsernameQuery("select usuario, senha as password, habilitado as enabled from cds_usuario where usuario = ? ")
    .authoritiesByUsernameQuery("select usuario, perfil as authority from cds_usuario where usuario = ?")
    .getUserDetailsService();
}

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
    .antMatchers("/admin/**").access("hasRole('ROLE_ADMIN')")
    .antMatchers("/painel**").access("hasRole('ROLE_ALUNO')")
    .antMatchers("/").access("permitAll")
    .antMatchers("/cadastro**").access("permitAll")
    .antMatchers("/error/**").access("permitAll")
    .and().formLogin().usernameParameter("username").passwordParameter("senha")
    .loginPage("/").loginProcessingUrl("/autenticar")
    .failureUrl("/")
    .defaultSuccessUrl("/painel")
    .and().logout().deleteCookies("remove")
    .invalidateHttpSession(false)
    .logoutUrl("/logout").logoutSuccessUrl("/")
    .and().csrf().disable()
    .exceptionHandling().accessDeniedPage("/403");
    http.sessionManagement().maximumSessions(1).expiredUrl("/logout");
}

}