导航:首页 > 净水问答 > shiro对ajax参数过滤

shiro对ajax参数过滤

发布时间:2021-12-03 03:52:24

1. springMvc+shiro做权限管理,页面上的静态资源,样式图片等没有出现,用几种方式过滤试过,还是不行

正常情况是不会出现这样的,shiro对于静态资源的处理,不用特殊配置。

只需要在shiroFilter过滤器filterChainDefinitions项中增加一个静态资源处理规则就可以,例如允许/css/开头的资源匿名访问,只需要这样一句配置就足矣。

/css/** = anon

配置完成后,未登录就可以在浏览器中直接访问css下的资源,新项目用的shiro,简单而又实用的权限框架。

2. struts2拦截器过滤放行后ajax请求后参数丢了

你是用ajax调用add方法的,而你的add方法的返回是个redirect类型,这可能会发生意外结果。 一般ajax请求都通过json类型返回,否则在struts2里可能会得到不正常结果 你可以在jquery接收到json返回值以后,再在请求成功的函数里通过window.location来执行list访问请求,达到重定向效果 让action继承json-default包,或者自己加上json过滤器,返回类型是type="json"

3. shiro过滤器/* = authc把自己写的都拦截了,走了上面的拦截器后还是会被/*拦截

我也碰到这种情来况了,,自,发现filters.put("authc", filter_Authc());这种方式注入filter的时候,拦截顺序会失效,,,要改成new xx()这种方式才可以filters.put("authc", new Filter_Authc());

4. shiro中权限过滤表达式的逗号表达的是与还是或

权限分配要看你自己设置什么样的用户, 能拥有什么权限,如:管理员能浏览所有的页面, 能进行增删查改,普通用户只能浏览公开的页面,只能查看,和修改等。 数据库表设计方面,建议你增加一张权限表, 权限表和用户表建立关系

5. ajax请求shiro怎么处理

在js里alert一个json对象得到的永远都是 [Object:object],因为alert函数是没法解析json对象的 如果你想得到json对象的内容,可以 alert(JSON.stringify(json))先将json对象转换成字符串,让后alert 或者使用浏览器控制台console对象输出 consol...

6. 怎么自定义shiro中的过滤器来允许ajax请求后台数据

自定义过滤器:

public class extends FormAuthenticationFilter {

@Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
if (isLoginRequest(request, response)) {
if (isLoginSubmission(request, response)) {
return executeLogin(request, response);
} else {
// 放行 allow them to see the login page ;)
return true;
}
} else {
HttpServletRequest httpRequest = WebUtils.toHttp(request);

if (ShiroFilterUtils.isAjax(httpRequest)) {

HttpServletResponse httpServletResponse = WebUtils.toHttp(response);
httpServletResponse.sendError(ShiroFilterUtils.HTTP_STATUS_SESSION_EXPIRE);

return false;

} else {
saveRequestAndRedirectToLogin(request, response);
}

return false;
}
}

/**
* 判断ajax请求
* @param request
* @return
*/
boolean isAjax(HttpServletRequest request){
return (request.getHeader("X-Requested-With") != null && "XMLHttpRequest".equals( request.getHeader("X-Requested-With").toString()) ) ;
}

}

封装ajax

var Error = function () {

return {
// 初始化各个函数及对象
init: function () {

},

// 显示或者记录错误
displayError: function(response, ajaxOptions, thrownError) {
if (response.status == 404) {// 页面没有找到
pageContent.load($("#hdnContextPath").val() + "/page/404.action");
} else if (response.status == 401) {// session过期
SweetAlert.errorSessionExpire();
} else if (response.status == 507) {// 用户访问次数太频繁
SweetAlert.error("您的访问次数太频繁, 请过一会再试...");
} else {//其他错误
window.location = $("#hdnContextPath").val() + "/page/500.action";
}
console.log(thrownError);
}

};

}();

jQuery(document).ready(function() {
Error.init();
});

JS的引用处如下:

App.blockUI();

$.ajax({
url: $("#hdnContextPath").val() + "/feedback/queryFeedBackDetail.action",
type: "POST",
async: false,
data: {"feedbackId": feedbackId, "userId": userId, "status": status},
success: function(data) {
// 忽略

7. shiro的filterchaindefinitions路径中可以带参数吗

正常情况是不会出现这样的,shiro对于静态资源的处理,不用特殊配置,只需要在shiroFilter过滤器filterChainDefinitions项中增加一个静态资源处理规则就可以,例如允许/css/开头的资源匿名访问,只需要这样一句配置就足矣, /css/** = anon 配置.

8. Ajax提交参数时html标签提交失败如何处理

方法
function base64decode(str) {
var c1, c2, c3, c4;
var i, len, out;
len = str.length;
i = 0;
out = “”;
while(i < len) {
do {
c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while(i < len && c1 == -1);
if(c1 == -1)
break;
do {
c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while(i < len && c2 == -1);
if(c2 == -1)
break;
out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
do {
c3 = str.charCodeAt(i++) & 0xff;
if(c3 == 61)
return out;
c3 = base64DecodeChars[c3];
} while(i < len && c3 == -1);
if(c3 == -1)
break;
out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));
do {
c4 = str.charCodeAt(i++) & 0xff;
if(c4 == 61)
return out;
c4 = base64DecodeChars[c4];
} while(i < len && c4 == -1);
if(c4 == -1)
break;
out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
}
return out;
}
function utf16to8(str) {
var out, i, len, c;
out = “”;
len = str.length;
for(i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0x0001) && (c <= 0x007F)) {
out += str.charAt(i);
} else if (c > 0x07FF) {
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
}
}
return out;
}
function utf8to16(str) {
var out, i, len, c;
var char2, char3;
out = “”;
len = str.length;
i = 0;
while(i < len) {
c = str.charCodeAt(i++);
switch(c >> 4)
{
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
// 0xxxxxxx
out += str.charAt(i-1);
break;
case 12: case 13:
// 110x xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
break;
case 14:
// 1110 xxxx 10xx xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
char3 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x0F) << 12) |
((char2 & 0x3F) << 6) |
((char3 & 0x3F) << 0));
break;
}
}
return out;

9. shiro的过滤器和web服务器的过滤器哪个先调用

在揭开 Shiro 面纱之前,我们需要认知用户权限模型。本文所提到用户权限模型,指的是用来表专达用户信息属及用户权限信息的数据模型。即能证明“你是谁?”、“你能访问多少受保护资源?”。为实现一个较为灵活的用户权限数据模型,通常把用户信息单独用一个实体表示,用户权限信息用两个实体表示。
用户信息用 LoginAccount 表示,最简单的用户信息可能只包含用户名 loginName 及密码 password 两个属性。实际应用中可能会包含用户是否被禁用,用户信息是否过期等信息。
用户权限信息用 Role 与 Permission 表示,Role 与 Permission 之间构成多对多关系。Permission 可以理解为对一个资源的操作,Role 可以简单理解为 Permission 的集合。

阅读全文

与shiro对ajax参数过滤相关的资料

热点内容
家用水箱滤芯怎么卸 浏览:271
上溢流过滤溢水 浏览:879
亿心源家用净水器怎么样 浏览:892
两批柜机不排废水 浏览:693
电热水器白醋除垢 浏览:855
保安过滤器招标 浏览:753
污水厂偷排怎么举报 浏览:786
净水器tds值偏高怎么回事 浏览:615
广东省uv树脂生产企业 浏览:564
沈阳除垢公司 浏览:771
玻璃钢防腐用哪种树脂 浏览:223
高中化学蒸馏板书 浏览:568
12年甲壳虫空调滤芯怎么更换 浏览:356
修理厂生产废水的处理方法 浏览:823
空气净化器价位多少 浏览:492
地埋式生活污水处理设备厂家直销 浏览:21
惠安特净水器滤芯怎么拆 浏览:545
怎么判断净水器是几百的 浏览:146
过滤盒高怎么做盖板 浏览:374
找亚都空气净化器怎么测甲醛 浏览:464