Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.90 KB | None | 0 0
  1. @Autowired
  2. private UserDetailsService userDetailsService;
  3.  
  4. @Bean
  5. public BCryptPasswordEncoder bCryptPasswordEncoder() {
  6. return new BCryptPasswordEncoder();
  7. }
  8.  
  9. @Override
  10. public void configure(WebSecurity web) throws Exception {
  11. web
  12. .ignoring()
  13. .antMatchers("/img/**", "/css/**", "/js/**", "/scss/**", "/vendor/**");
  14. }
  15.  
  16. @Override
  17. protected void configure(HttpSecurity http) throws Exception{
  18. http.csrf().disable().authorizeRequests()
  19. .antMatchers("/login","/error","/funcionarioCadastrar").permitAll()
  20. /*.antMatchers("/funcionarioCadastrar","/funcionarioExcluir","/medicamentoExcluir" ,"/clienteExcluir"
  21. ).hasRole("ADMIN")*/
  22. .anyRequest().authenticated()
  23. .and()
  24. .formLogin()
  25. .loginPage("/login")
  26. .permitAll()
  27. .and()
  28. .logout()
  29. .permitAll();
  30. }
  31.  
  32. @Bean
  33. public AuthenticationManager customAuthenticationManager() throws Exception{
  34. return authenticationManager();
  35. }
  36.  
  37. @Autowired
  38. public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception{
  39. auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder());
  40. }
  41.  
  42. public void addViewControllers(ViewControllerRegistry registry) {
  43. registry.addViewController("/").setViewName("index");
  44. registry.addViewController("/index").setViewName("index");
  45. }
  46.  
  47. @Override
  48. protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
  49. return application.sources(FarmaciaxApplication.class);
  50. }
  51.  
  52. public static void main(String[] args) {
  53. SpringApplication.run(FarmaciaxApplication.class, args);
  54. }
  55.  
  56. @Autowired
  57. private UserService userService;
  58. @Autowired
  59. private UserRepository userRepository;
  60. @Autowired
  61. private SecurityService securityService;
  62. @Autowired
  63. private UserValidator userValidater;
  64.  
  65. // Método logar no sistema
  66. @GetMapping({ "/", "/login" })
  67. public String login(Model model, String error, String logout) {
  68. if (error != null) {
  69. model.addAttribute("message", "Login e/ou senha invalidos");
  70. }else {
  71. model.addAttribute("message", "Login realizado com sucesso,Bem vindo!");
  72. }
  73. if (logout != null) {
  74. model.addAttribute("message", "Logout realizado com sucesso!");
  75. }
  76. System.out.println(error);
  77. return "login";
  78. }
  79.  
  80. // Buscar Funcionarios
  81. @GetMapping("/funcionarioBuscar")
  82. public ModelAndView listar(ModelMap model) {
  83. model.addAttribute("user", userRepository.findAll());
  84. return new ModelAndView(" funcionarioBuscar", model);
  85. }
  86. // pré cadastra
  87. @GetMapping("/funcionarioCadastrar")
  88. public String funcionarioCadastrar(@ModelAttribute("user") User user) {
  89. return "/funcionarioCadastrar";
  90. }
  91. // Cadastrar
  92. @PostMapping("/funcionarioCadastrar")
  93. public String salvar(@Valid @ModelAttribute("user") User user, BindingResult result, RedirectAttributes attr) {
  94. if (result.hasErrors()) {
  95. return "/funcionarioCadastrar";
  96. }
  97.  
  98. userService.save(user);
  99. attr.addFlashAttribute("message", "Funcionario salvo com sucesso.");
  100. return "redirect:/funcionarioCadastrar";
  101. }
  102.  
  103. <form th:action="@{/cadastrarFuncionario}" th:method="${user.id} == null ? post : put" th:object="${user}">
  104. <div class="form-row">
  105. <input id="id" type="hidden" th:field="*{id}" />
  106. <div class="form-group col-md-6">
  107. <label for="username">Login</label>
  108. <input type="text" class="form-control" id="username" name="username" th:field="*{username}" placeholder="Login de usuário"/>
  109. <div th:if="${#fields.hasErrors('username')}" th:errors="*{username}"></div>
  110. </div>
  111. <div class="form-group col-md-6">
  112. <label for="password">Senha</label>
  113. <input type="password" class="form-control" id="password" name="password" th:field="*{password}" placeholder="Senha"/>
  114. </div>
  115. </div>
  116. <div class="form-row">
  117. <div class="form-group col-md-6">
  118. <label for="name">Nome</label>
  119. <input type="text" class="form-control" id="name" name="name" th:field="*{name}" placeholder="Nome">
  120. </div>
  121. <div class="form-group col-md-6">
  122. <label for="inputCity">Salario</label>
  123. <input type="text" class="form-control" id="salary" name="salary" th:field="*{salary}" placeholder="Ex... 998.00" />
  124. </div>
  125. </div>
  126. <div class="form-row">
  127. <div class="form-group col-md-6">
  128. <label for="inputAddress2">CPF</label>
  129. <input maxlength="11" type="text" class="form-control" id="cpf" name="cpf" th:field="*{cpf}" placeholder="CPF"/>
  130. <div th:if="${#fields.hasErrors('cpf')}" th:errors="*{cpf}" class="label label-danger"></div>
  131. </div>
  132. <div class="form-group col-md-6">
  133. <label for="roles">Perfil</label>
  134. <input maxlength="5" type="text" class="form-control" id="roles" name="name" th:field="*{roles}" placeholder="admin , user"/>
  135. <div th:if="${#fields.hasErrors('roles')}" th:errors="*{roles}" class="label label-danger"></div>
  136. <!--
  137. <select th:field="*{roles}" class="form-control" id="roles" >
  138. <option th:text="${roles.name}" th:value="${roles.id}" th:each="roles: ${roles}"></option>
  139. </select>
  140. -->
  141. </div>
  142. </div>
  143. <button type="submit" class="btn btn-primary">Cadastrar</button>
  144. <a th:href="@{/funcionarioCadastrar}" class="btn btn-danger">Cancelar</a>
  145. </form>
  146. </div>
  147. <div class="card-footer small text-muted">Atualizado Hoje 03/05</div>
  148. </div>
  149. </div>
  150. <!-- /.container-fluid --
  151. <!-- Sticky Footer -->
  152. <footer class="sticky-footer">
  153. <div class="container my-auto">
  154. <div class="copyright text-center my-auto">
  155. <span>Copyright © Farmacia XYZ 2019</span>
  156. </div>
  157. </div>
  158. </footer>
  159. </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement