考慮以下代碼:方法的Spring安全註解如何工作?
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工具套件)和它的工作如預期。 (它打印"Changing passwords ..."
。) 然後我將密碼重命名爲其他內容,期望現在方法調用失敗。
我已將<global-method-security pre-post-annotations="enabled"/>
行添加到我的applicationContext-security.xml
配置文件中。
缺少什麼我在這裏?
有趣,注意解釋一下更詳細的? – soc
@soc:更新.. – axtavt