Sec: авторизация не работает в весенней безопасности 4 - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь использовать весеннюю безопасность.Я создал двух пользователей в памяти администратора и пользователей.

auth.inMemoryAuthentication().withUser("admin").password("admin").roles("ADMIN");
        auth.inMemoryAuthentication().withUser("user").password("user").roles("USER");

Это мой pom.xml:

<dependency>
        <groupId>org.thymeleaf.extras</groupId>
        <artifactId>thymeleaf-extras-springsecurity4</artifactId>
    </dependency>

, и это моя HTML-страница:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" 
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/myStyle.css"/>
<script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-route.js"></script>
<script type="text/javascript" src="js/myApp.js"></script>
<link rel="stylesheet" href="css/print.css" type="text/css" media="print" />
</head>
<body ng-app="myStockApp">
<div ng-controller="mainctr">
<div data-ng-init="listArticles()"> 

<div sec:authorize="hasRole('ROLE_ADMIN')">Only for admin</div>

//code ...

Мне бы хотелось, чтобы только администратор видел этот div, но когда я вошел в систему как пользователь, появляется div выше, или он должен исчезнуть.Можете ли вы сказать мне, где проблема?спасибо.

Ответы [ 3 ]

0 голосов
/ 20 февраля 2019

убедитесь, что вы используете пружинную защиту 4 , если вы не изменили thymeleaf-extras-springsecurity на правильную

0 голосов
/ 28 мая 2019

после поиска и попытки понять проблему, я обнаружил, что есть проблема с диалектом

, здесь вы можете увидеть, как добавить диалект: Как добавить Thymeleaf SpringSecurityDialect для весенней загрузки

tl; dr добавить это в вашу конфигурацию

    @Bean
 public SpringSecurityDialect securityDialect() {
     return new SpringSecurityDialect();
 }        
0 голосов
/ 21 мая 2018

Не могли бы вы заменить в тимьяне этот

<div sec:authorize="hasRole('ROLE_ADMIN')">Only for admin</div>

следующим

<div sec:authorize="hasAuthority('ADMIN')">Only for admin</div>

и сообщить мне, работает ли он для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...