Configurando Spring Security com Spring Bota

votos
8

Eu sou novo para a configuração do Spring Security utilizando Java configuração . Eu estava tentando seguir esta postagem . No entanto, quando eu executar o meu aplicativo, eu recebo um desafio Auth básico em todas as URLs, incluindo /. Entrando no quer do ID do usuário / passar combos abaixo não parecem funcionar.

Meu Controlador:

package com.xxx.web;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping(/)
/**
 * Controller to handle basic root URLs
 * 
 * @author xxx
 * @version 0.1.0
 */
public class RootController {

    /**
     * Handles '/'
     * @param model
     * @return
     */
    @RequestMapping
    public String index(Model model) {
        return index;
    }

    /**
     * Handles '/signup'
     * @param model
     * @return
     */
    @RequestMapping(/signup)
    public String signup(Model model) {
        return signup;
    }

    /**
     * Handles '/about'
     * @param model
     * @return
     */
    @RequestMapping(/about)
    public String about(Model model) {
        return about;
    }

    /**
     * Handles '/login'
     * @param model
     * @return
     */
    @RequestMapping(/login)
    public String login(Model model) {
        return login;
    }

    /**
     * Handles '/admin'
     * @param model
     * @return
     */
    @RequestMapping(/admin)
    public String admin(Model model) {
        return admin;
    }
}

Não tenho certeza o que mais tentar. Apenas à procura de alguma orientação a respeito de porque isso não está funcionando.

Atualizar

Para completar, aqui é a classe config:

package com.xxx.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
@EnableWebSecurity
/**
 * Configures the security for the application
 * 
 * @author XXX
 * @version 0.1.0
 *
 */
public class WebSecurityAppConfig extends WebSecurityConfigurerAdapter {
    @Override
    /**
     * @see org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter#registerAuthentication(AuthenticationManagerBuilder)
     */
    protected void registerAuthentication(AuthenticationManagerBuilder auth)
            throws Exception {
        auth
          .inMemoryAuthentication()
            .withUser(user)  // #1
              .password(password)
              .roles(USER)
              .and()
            .withUser(admin) // #2
              .password(password)
              .roles(ADMIN,USER);
    }

    @Override
    /**
     * @see org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter#configure(WebSecurity)
     */
    public void configure(WebSecurity web) throws Exception {
        web
          .ignoring()
             .antMatchers(/resources/**); // #3
    }

    @Override
    /**
     * @see org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter#configure(HttpSecurity)
     */
    protected void configure(HttpSecurity http) throws Exception {
        http
          .authorizeRequests()
            .antMatchers(/,/signup,/about).permitAll() // #4
            .antMatchers(/admin/**).hasRole(ADMIN) // #6
            .anyRequest().authenticated() // 7
            .and()
        .formLogin()  // #8
            .loginPage(/login) // #9
            .permitAll(); // #5
    }
}

E o WebApplicationInitializer:

package com.xxx.config;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

/**
 * 
 * @author XXX
 * @version 0.1.0
 */
public class SpringWebMvcInitializer extends
        AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    /**
     * 
     */
    protected Class<?>[] getRootConfigClasses() {
        return new Class[] { WebSecurityAppConfig.class };
    }

    @Override
    /**
     * 
     */
    protected Class<?>[] getServletConfigClasses() {
        return null;
    }

    @Override
    /**
     * 
     */
    protected String[] getServletMappings() {
        return null;
    }

}

Eu não incluí-las antes, porque eles são praticamente um copy-paste do blog destacamento referenciado.

Publicado 23/10/2013 em 01:37
fonte usuário
Em outras línguas...                            


1 respostas

votos
6

A pergunta original provavelmente o melhor é atendida por apenas descrevendo as opções disponíveis. Algumas aplicações (serviços que só precisa de autenticação básica HTTP) pode usar as configurações padrão no atuador, outros terão de especificar security.*propriedades (ver SecurityPropertiesas opções) e / ou um AuthenticationManager(para detalhes da conta de usuário). O próximo nível de controle vem de adicionar o seu próprio WebSecurityConfigurerAdapter, e você pode ver como fazer isso olhando para o "seguro" amostra na Primavera de inicialização .

Respondeu 06/11/2013 em 12:13
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more