Рассмотрим этот код:
import java.util.Collections;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.core.userdetails.User;
public class SecureStuff {
@PreAuthorize("#user.password == #oldPassword")
public static void changePassword(User user, String oldPassword, String newPassword){
System.out.print("Changing passwords ...");
}
public static void main(String[] args) {
User joe = new User("Joe", "HansWurst", true, true, true, true, Collections.EMPTY_LIST);
changePassword(joe, "HansWurst", "TeeWurst");
}
}
Я запустил код в STS (SpringSource Tool Suite), и он работал как положено.(На нем было напечатано "Changing passwords ..."
.) Затем я переименовал пароль во что-то другое, ожидая, что вызов метода завершится ошибкой.
Я уже добавил строку <global-method-security pre-post-annotations="enabled"/>
в свой файл конфигурации applicationContext-security.xml
.
Что мне здесь не хватает?