Guest User

Untitled

a guest
Jan 22nd, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.46 KB | None | 0 0
  1. <li sec:authorize="hasRole('ADMINISTRADOR')" class="liindex nav-item">
  2. <a th:href="@{/usuarios/login}" class="btnpadrao btn btn-sm">Administrador</a>
  3. </li>
  4.  
  5. @Autowired
  6. public void configureGlobal(AuthenticationManagerBuilder builder) throws Exception{
  7. builder.inMemoryAuthentication()
  8. .withUser("welber").password("123").roles("ADMINISTRADOR")
  9. .and()
  10. .withUser("bianca").password("123").roles("COMUM");
  11. }
  12.  
  13. package br.com.welberdev.config;
  14.  
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.context.annotation.Configuration;
  17. import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
  18.  
  19. @Configuration
  20. public class InMemorySecurityConfig {
  21.  
  22. @Autowired
  23. public void configureGlobal(AuthenticationManagerBuilder builder) throws Exception{
  24. builder.inMemoryAuthentication()
  25. .withUser("welber").password("123").roles("ADMINISTRADOR")
  26. .and()
  27. .withUser("bianca").password("123").roles("COMUM");
  28. }
  29. }
  30.  
  31. <!DOCTYPE html>
  32. <html lang="pt-br"
  33. xmlns:th="http://www.thymeleaf.org"
  34. xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
  35. <head>
  36. <meta charset="UTF-8"/>
  37. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  38. <meta http-equiv="x-ua-compatible" content="ie=edge"/>
  39. <title>CatDog</title>
  40. <link th:href="@{/css/style.css}" rel="stylesheet"/>
  41. <link th:href="@{/webjars/bootstrap/4.1.0/css/bootstrap.min.css}" rel="stylesheet"/>
  42. </head>
  43.  
  44. <body class="body-config">
  45. <header>
  46. <nav class="alteracoes-navbar navbar navbar-expand-lg">
  47. <div class="container">
  48. <ul class="navbar-nav mr-auto">
  49. <li class="nav-item">
  50. <a href="" class="nav-link"><img th:src="@{/img/logo_superior1.png}" width="50" height="50"
  51. alt="CatDog"/></a>
  52. </li>
  53. <li class="liindex nav-item">
  54. <a th:href="@{/ocorrencias/listar}" class="alink nav-link">Ocorrências</a>
  55. </li>
  56. <li class="liindex nav-item">
  57. <a href="contato.html" class="alink nav-link">Contato</a>
  58. </li>
  59. <li class="liindex nav-item">
  60. <a href="outros/localizacao.html" class="alink nav-link">Localização</a>
  61. </li>
  62. <li class="liindex nav-item">
  63. <a href="sobre.html" class="alink nav-link">Sobre nós</a>
  64. </li>
  65. <li class="liindex nav-item">
  66. <a th:href="@{/usuarios/login}" class="btnpadrao btn btn-sm">Entrar</a>
  67. </li>
  68. <li sec:authorize="hasRole('ADMINISTRADOR')" class="liindex nav-item">
  69. <a th:href="@{/usuarios/login}" class="btnpadrao btn btn-sm">Administrador</a>
  70. </li>
  71. <li class="lifacebook nav-item">
  72. <a target="_blank" href="https://www.facebook.com/groups/275221866151012/"><img
  73. class="imgimagemfacebook" th:src="@{/img/facebook.png}"/></a>
  74. </li>
  75. <li class="liindex nav-item lisair">
  76. <form action="/logout" method="post" class="navbar-form navbar-right">
  77. <button type="submit" class="btnpadrao btn btn-sm">Sair</button>
  78. <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}" />
  79. </form>
  80. </li>
  81. </ul>
  82. </div>
  83. </nav>
  84. </header>
  85.  
  86. <main class="main-config">
  87. <div style="background-color: white" class="centralizado jumbotron fundoprincipal">
  88. <div th:if="animais != null" class="container">
  89. <div class="row">
  90. <div th:each="animal : ${listaDeAnimais}" class="col-sm-6 col-md-4">
  91. <div class="card-config card">
  92. <img src="../img/gatopainel.png" class="card-img-top" alt="Foto do animal"/>
  93. <div class="card-body">
  94. <h5 class="card-title" th:text="${animal.nomeAnimal}"></h5>
  95. <p class="card-text" th:text="${animal.historiaAnimal}"></p>
  96. <p class="card-text">
  97. <small class="text-muted">Postado em</small>
  98. <small th:text="${animal.dataEncontroAnimal}"></small>
  99. <small th:text="${animal.idAnimal}" hidden="hidden"></small>
  100. </p>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. </div>
  106. </div>
  107. </main>
  108.  
  109. <script th:src="@{/js/jquery-3.3.1.min.js}"></script>
  110. <script th:src="@{https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js}" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
  111. </body>
  112. </html>
  113.  
  114. package br.com.welberdev.config;
  115.  
  116. import org.springframework.context.annotation.Configuration;
  117. import org.springframework.security.config.annotation.web.builders.HttpSecurity;
  118. import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
  119.  
  120. @Configuration
  121. public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
  122.  
  123. @Override
  124. protected void configure(HttpSecurity http) throws Exception {
  125. http
  126. .authorizeRequests()
  127. .antMatchers("/animais/admin/*", "/usuarios/admin/*").hasAnyRole("ADMINISTRADOR")
  128. .antMatchers("/ocorrencias/comum/*").hasAnyRole("COMUM")
  129. .anyRequest()
  130. .authenticated()
  131. .and()
  132. .formLogin()
  133. .loginPage("/usuarios/login")
  134. .permitAll()
  135. .and()
  136. .logout()
  137. .logoutSuccessUrl("/usuarios/login?logout")
  138. .permitAll();
  139. }
  140. }
  141.  
  142. <?xml version="1.0" encoding="UTF-8"?>
  143. <project xmlns="http://maven.apache.org/POM/4.0.0"
  144. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  145. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  146. <modelVersion>4.0.0</modelVersion>
  147.  
  148. <groupId>br.com.welberdev</groupId>
  149. <artifactId>ajudaf</artifactId>
  150. <version>1.0-SNAPSHOT</version>
  151.  
  152. <!--Aqui foi declarada a versão do spring e, portanto, as dependencias não precisam-->
  153. <parent>
  154. <groupId>org.springframework.boot</groupId>
  155. <artifactId>spring-boot-starter-parent</artifactId>
  156. <version>1.5.10.RELEASE</version>
  157. </parent>
  158. <!--Fim-->
  159.  
  160. <properties>
  161. <java.version>1.8</java.version>
  162. </properties>
  163.  
  164. <dependencies>
  165.  
  166. <!--Dependências padrão para o Spring. (O starter garante um pacote com tudo que precisamos, sem aquele monte de importações)-->
  167. <dependency>
  168. <groupId>org.springframework.boot</groupId>
  169. <artifactId>spring-boot-starter-web</artifactId>
  170. </dependency>
  171. <dependency>
  172. <groupId>org.springframework.boot</groupId>
  173. <artifactId>spring-boot-starter-data-jpa</artifactId>
  174. </dependency>
  175. <dependency>
  176. <groupId>org.springframework.boot</groupId>
  177. <artifactId>spring-boot-starter-thymeleaf</artifactId>
  178. </dependency>
  179. <dependency>
  180. <groupId>org.springframework.boot</groupId>
  181. <artifactId>spring-boot-starter-security</artifactId>
  182. </dependency>
  183. <dependency>
  184. <groupId>org.thymeleaf.extras</groupId>
  185. <artifactId>thymeleaf-extras-springsecurity4</artifactId>
  186. </dependency>
  187. <!--Fim-->
  188.  
  189. <dependency>
  190. <groupId>org.webjars</groupId>
  191. <artifactId>bootstrap</artifactId>
  192. <version>4.1.0</version>
  193. </dependency>
  194. <dependency>
  195. <groupId>mysql</groupId>
  196. <artifactId>mysql-connector-java</artifactId>
  197. </dependency>
  198. </dependencies>
  199.  
  200. <build>
  201. <plugins>
  202. <!--Plugin para comunicação do spring com o maven-->
  203. <plugin>
  204. <groupId>org.springframework.boot</groupId>
  205. <artifactId>spring-boot-maven-plugin</artifactId>
  206. </plugin>
  207. <!--Fim-->
  208. </plugins>
  209. </build>
  210. </project>
Add Comment
Please, Sign In to add comment