Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Configuration
- @EnableWebSecurity
- public class ConfigSecurity extends WebSecurityConfigurerAdapter {
- @Autowired
- public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
- auth
- .inMemoryAuthentication()
- .withUser("user").password("password").roles("USER");
- }
- @Override
- protected void configure( HttpSecurity http ) throws Exception {
- http
- //.csrf().disable() is commented because i dont want disable this kind of protection
- .authorizeRequests()
- .anyRequest().authenticated()
- .and()
- .formLogin()
- .loginPage("/login")
- .permitAll()
- .and()
- .logout()
- .permitAll();
- }
- }
- public class InitSecurity extends AbstractSecurityWebApplicationInitializer {
- public InicializarSecurity() {
- super(ConfigSecurity .class);
- }
- }
- @EnableWebMvc
- @ComponentScan(basePackages = {"com.myApp.R10"})
- @Configuration
- public class ConfigApp extends WebMvcConfigurerAdapter{
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- registry.addResourceHandler("/css/**").addResourceLocations("/css/**");
- registry.addResourceHandler("/img/**").addResourceLocations("/img/**");
- registry.addResourceHandler("/js/**").addResourceLocations("/js/**");
- registry.addResourceHandler("/sound/**").addResourceLocations("/sound/**");
- registry.addResourceHandler("/fonts/**").addResourceLocations("/fonts/**");
- }
- @Override
- public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
- configurer.enable();
- }
- @Bean
- public MessageSource messageSource() {
- ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
- messageSource.setBasenames("classpath:messages/messages");
- messageSource.setUseCodeAsDefaultMessage(true);
- messageSource.setDefaultEncoding("UTF-8");
- messageSource.setCacheSeconds(0);// # -1 : never reload, 0 always reload
- return messageSource;
- }
- // THYMELEAF
- @Bean
- public ServletContextTemplateResolver templateResolver() {
- ServletContextTemplateResolver resolver = new ServletContextTemplateResolver();
- resolver.setPrefix("/WEB-INF/views/pagLogin/");
- resolver.setSuffix(".html");
- resolver.setTemplateMode("HTML5");
- resolver.setOrder(0);
- resolver.setCacheable(false);
- return resolver;
- }
- @Bean
- public SpringTemplateEngine templateEngine() {
- SpringTemplateEngine engine = new SpringTemplateEngine();
- engine.setTemplateResolver( templateResolver() );
- engine.setMessageSource( messageSource() );
- return engine;
- }
- @Bean
- public ThymeleafViewResolver thymeleafViewResolver() {
- ThymeleafViewResolver resolver = new ThymeleafViewResolver();
- resolver.setTemplateEngine( templateEngine() );
- resolver.setOrder(1);
- resolver.setCache( false );
- return resolver;
- }
- @Bean
- public SpringResourceTemplateResolver thymeleafSpringResource() {
- SpringResourceTemplateResolver vista = new SpringResourceTemplateResolver();
- vista.setTemplateMode("HTML5");
- return vista;
- }
- }
- public class InicializarApp extends AbstractAnnotationConfigDispatcherServletInitializer {
- @Override
- protected Class<?>[] getRootConfigClasses() {
- return null;
- }
- @Override
- protected Class<?>[] getServletConfigClasses() {
- return new Class[] { ConfigApp .class };
- }
- @Override
- protected String[] getServletMappings() {
- return new String[]{"/"};
- }
- @Override
- protected Filter[] getServletFilters() {
- return new Filter[] { new HiddenHttpMethodFilter() };
- }
- }
- @Controller
- public class ControllerLogin {
- @RequestMapping(value = "/login", method = RequestMethod.GET)
- public String pageLogin(Model model) {
- return "login";
- }
- @Controller
- public class HomeController {
- @RequestMapping(value = "/", method = RequestMethod.GET)
- public String home(Model model) {
- return "home";
- }
- }
- <html xmlns:th="http://www.thymeleaf.org" xmlns:tiles="http://www.thymeleaf.org">
- <head>
- <title tiles:fragment="title">Messages : Create</title>
- </head>
- <body>
- <div tiles:fragment="content">
- <form name="f" th:action="@{/login}" method="post">
- <fieldset>
- <legend>Please Login</legend>
- <div th:if="${param.error}" class="alert alert-error">
- Invalid username and password.
- </div>
- <div th:if="${param.logout}" class="alert alert-success">
- You have been logged out.
- </div>
- <label for="username">Username</label>
- <input type="text" id="username" name="username"/>
- <label for="password">Password</label>
- <input type="password" id="password" name="password"/>
- <div class="form-actions">
- <button type="submit" class="btn">Log in</button>
- </div>
- <!-- THIS IS COMMENTED it dont work beacuse i am already using thymeleaf <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> -->
- </fieldset>
- </form>
- </div>
- </body>
- </html>
- <form name="f" th:action="@{/login}" method="post">
- <fieldset>
- <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}" />
- ...
- </fieldset>
- </form>
- <dependency>
- <groupId>org.thymeleaf.extras</groupId>
- <artifactId>thymeleaf-extras-springsecurity3</artifactId>
- <version>2.1.2.RELEASE</version>
- </dependency>
- import org.thymeleaf.extras.springsecurity3.dialect.SpringSecurityDialect;
- templateEngine.addDialect(new SpringSecurityDialect()); //add this line in your config
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement