我有一个资源类
public class SecureResource {
private HttpServletRequest request;
// some more things here
}
Run Code Online (Sandbox Code Playgroud)
我想request.getHeader('X-AUTH')使用java反射运行tun ?
我试过了什么?
Field f = response.getResourceClass().getDeclaredField("request");
f.setAccessible(true);
f.get("X-AUTH");
Run Code Online (Sandbox Code Playgroud)
我明白了
java.lang.IllegalArgumentException: Can not set javax.servlet.http.HttpServletRequest field com.sn.bb.service.SecureResource.request to java.lang.String
Run Code Online (Sandbox Code Playgroud)
我错过了什么?我怎样才能运行request.getHeader('X-AUTH')的f?
Jon*_*eet 10
你现在正试图让这个字段好像是一个实例上的字段java.lang.String.大概你已经有了一个实例SecureResource,所以你想要打电话:
Field f = response.getResourceClass().getDeclaredField("request");
f.setAccessible(true);
HttpServletRequest request = (HttpServletRequest) f.get(resource);
String auth = request.getHeader("X-AUTH");
Run Code Online (Sandbox Code Playgroud)
(resource对相关实例的引用在哪里SecureResource.)
也就是说,即使你已经开始工作,我也会强烈劝阻它.你的代码不适用于有严格安全管理器的情况,面对实现的变化会很脆弱,而且通常建议你尝试做一些没有设计类的东西.
| 归档时间: |
|
| 查看次数: |
564 次 |
| 最近记录: |