Configuração Spring Security

Pessoal, boa tarde!

Estou começando com Spring Security, e cheguei num ponto em que não sei o que estou fazendo errado, mas não funcionando como deveria.

Eu criei uma página de login, não quis usar a do Spring, mas não consigo direcionar os dados da minha página para o Spring validar. E quando salvo um usuário a senha não está sendo criptografada.

Podem me ajudar?

form-login.jsp

<jsp:body>	

	<h1>Login</h1>
	
	<form:form action="login" method="post">
	
		<div>
			<label for="email">E-mail: </label>
			<input type="text" name="email" />
		</div>
		<div>
			<label for="senha">Senha: </label>
			<input type="password" name="senha" />
		</div>
		
		<div>
			<input type="checkbox" id="remember-me" name="remember-me" />
			<label for="remember-me">Lembrar-me</label>		
		</div>

		<input type="submit" value="Acessar cadastro" />
	</form:form>
	
	<br />
	<p>Caso não seja cadastrado, <a href="${contextPath}cadastroUsuario">clique aqui</a>
	</p>

loginDAO

@Repository
public class LoginDAO implements UserDetailsService {

@PersistenceContext
private EntityManager manager;

public void save(Usuario usuario) {
	manager.persist(usuario);
}

public Usuario findOne(Integer id) {
	return manager.find(Usuario.class, id);
}

@Override
public Usuario loadUserByUsername(String email) {
	List<Usuario> usuarios = manager.createQuery("select u from Usuario u where email = :email", Usuario.class)
			.setParameter("email", email)
			.getResultList();
	
	if(usuarios.isEmpty()) {
		throw new UsernameNotFoundException("Usuario " + email + " não foi encontrado");
	}
	
	return usuarios.get(0);
}

LoginController

@Controller
public class LoginController {

@Autowired
private LoginDAO loginDao;

@RequestMapping(value = { "loginForm", "login", "cadastro/form-login"}, method = RequestMethod.GET)
public String loginForm() {
	System.out.println("Acessando Login");
	return "cadastro/form-login";
}

@RequestMapping("logout")
public String logout(HttpSession session) {
	System.out.println("Efetuando logout");
	session.invalidate();
	return "redirect:home";
}

SecurityConfiguration

@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

@Autowired
private UserDetailsService userDetailsService;

@Autowired
private LoginDAO loginDao;

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
	auth.userDetailsService(loginDao).passwordEncoder(new BCryptPasswordEncoder());
}

@Override
protected void configure(HttpSecurity http) throws Exception {
	http.authorizeRequests()
			.antMatchers("/controle/**").hasRole("USUAR")
			.antMatchers("/historico").hasRole("USUAR")
			.antMatchers("/blog").hasRole("USUAR")
			.antMatchers("/**").permitAll()
			.anyRequest().authenticated()
		.and()
			.formLogin()
				.usernameParameter("email")
				.passwordParameter("senha")
				.loginPage("/cadastro/form-login")
				.permitAll()
		.and()
			.logout().permitAll()
		.and()
			.exceptionHandling().accessDeniedPage("/errors/403")
		.and()
			.rememberMe().userDetailsService(userDetailsService);
}

@Override
public void configure(WebSecurity web) throws Exception {
	web.ignoring().antMatchers("/resources/**");
}

Classe Usuário

@Entity
public class Usuario implements UserDetails {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

@Email
@NotNull
@NotEmpty
private String email;

@Size(min = 6)
@NotNull
@NotEmpty
private String senha;

@ManyToMany
@JoinTable(name = "usuario_role", joinColumns = @JoinColumn(name = "usuario_id", referencedColumnName = "id"),
							inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "nome"))
private List<Role> roles;

@DateTimeFormat
@NotNull
private Calendar dataCadastro = Calendar.getInstance();

private boolean cadastroAtivado = false;

A criação de Usuários está no UsuarioController, onde não está sendo criptogrado a senha.

@Controller
public class UsuarioController {

@Autowired
private LoginDAO loginDao;

@RequestMapping("cadastroUsuario")
public String cadastraUsuario() {
	System.out.println("Acessando menu de cadastro: ");
	return "cadastro/form-usuario";
}

@RequestMapping("enviaCadastro")
@Transactional
public String enviaCadastro(@Valid Usuario usuario, BindingResult result, Model model) {

	System.out.println("enviaCadastro");
	
	usuario.setRoles(Arrays.asList(new Role("ROLE_USUAR"), new Role("ROLE_ADMIN")));

	if (result.hasErrors()) {
		System.out.println("Erro");
		return "cadastro/form-usuario";
	}

	loginDao.save(usuario);

	model.addAttribute("idFormUsuario", usuario.getId());

	return "cadastro/form-pessoa";

}