i want use apache-shiro protect urls. so, did config
@configuration public class applicationconfigshiro { @bean public shirofilterfactorybean shirofilter() { shirofilterfactorybean factorybean = new shirofilterfactorybean(); factorybean.setsecuritymanager(securitymanager()); return factorybean; } // blah blah ... @bean(name = "realm") @dependson("lifecyclebeanpostprocessor") public propertiesrealm realm() { // blah blah } @bean public lifecyclebeanpostprocessor lifecyclebeanpostprocessor() { return new lifecyclebeanpostprocessor(); } @bean @dependson("lifecyclebeanpostprocessor") public defaultadvisorautoproxycreator defaultadvisorautoproxycreator() { return new defaultadvisorautoproxycreator(); } @bean public authorizationattributesourceadvisor authorizationattributesourceadvisor() { authorizationattributesourceadvisor advisor = new authorizationattributesourceadvisor(); advisor.setsecuritymanager(securitymanager()); return advisor; } } and here mvc-request-method
@controller @requestmapping("/html") public class htmlcontroller { @resource private userservice userservice; @requestmapping(value = "/users", method = requestmethod.get) public modelandview listusers() { list<user> users = userservice.findallusers(); modelandview modelandview = new modelandview("users"); modelandview.addobject("users", users); return modelandview; } } very thing ok. , start project mvn spring-boot:run. , check out http://localhost:8080/mappings json result can tell me mapping /html/users ready use. did check out http://localhost:8080/html/users, fine.
but once add shiro's annotations @requiresauthentication request-mapping-method this:
@requiresauthentication // **i add line** @requestmapping(value = "/users", method = requestmethod.get) public modelandview listusers() { list<user> users = userservice.findallusers(); modelandview modelandview = new modelandview("users"); modelandview.addobject("users", users); return modelandview; } re-run project, re-check http://localhost:8080/mappings, mapping /html/users gone. try access http://localhost:8080/html/users got 404 of course.
did miss something? or bug of spring?
help me please. sorry give trouble.
git clone git@github.com:yingzhuo/spring-playground.git cd spring-playground mvn clean spring-boot:run
ok, found answer myslef.
@bean @dependson("lifecyclebeanpostprocessor") public defaultadvisorautoproxycreator defaultadvisorautoproxycreator() { defaultadvisorautoproxycreator proxycreator = new defaultadvisorautoproxycreator(); proxycreator.setproxytargetclass(true); // setting return proxycreator; }
Comments
Post a Comment