我正在检查我的请求URI中是否有特定的令牌,Symfony\Component\Security\Core\Exception\AccessDeniedException如果没有令牌或令牌错误则抛出一个令牌.
if(!isset($token) && $token != 'whatever') {
throw new AccessDeniedException('No token given or token is wrong.');
}
Run Code Online (Sandbox Code Playgroud)
但是当我使用它时AccessDeniedException,Symfony2只是重定向到登录页面.相反,我想有一个专用的403错误页面(我已经创建了app/Resources/TwigBundle/views/Exceptions/error403.html.twig文件).
为了达到这个目的,我还需要改变什么?我是否必须使用PHP本机异常?但是如何判断传递403错误代码?
Symfony2是否有一个特定的403-Exception,它不会简单地重定向到登录?
我想使用$ .POST进行ajax调用.但我得到403错误.但GET工作得非常好.我的代码是:
var url = "/xyz/abc/subscribe?name="+name;
$.post(url, function(data){
alert(data);
});
Run Code Online (Sandbox Code Playgroud)
控制器代码是:
@RequestMapping(value = "/xyz/abc/subscribe", method = RequestMethod.POST)
public @ResponseBody
String subscribe(@RequestParam("name") String name)
throws Exception {
String message = "TESTING";
return message;
}
Run Code Online (Sandbox Code Playgroud)
但是我收到403错误.
我想从url下载mp3文件:"http://upload13.music.qzone.soso.com/30671794.mp3",我总是得到java.io.IOException:服务器返回HTTP响应代码:403为URL.但是使用浏览器打开网址时没关系.以下是我的代码的一部分:
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
URL url = new URL(link);
URLConnection urlConn = url.openConnection();
urlConn.addRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
String contentType = urlConn.getContentType();
System.out.println("contentType:" + contentType);
InputStream is = urlConn.getInputStream();
bis = new BufferedInputStream(is, 4 * 1024);
bos = new BufferedOutputStream(new FileOutputStream(
fileName.toString()));?
Run Code Online (Sandbox Code Playgroud)
有人可以帮帮我吗?提前致谢!
我已经安装了wamp服务器2.2我正在使用Windows 7
当我在线时,我无法使用WaMp找到localhost它给我一些禁止错误..你没有Access类型的错误.
但是当我断开我的互联网连接时,我可以获得localhost..PHPmyadmin和WAMP服务器的所有功能.
我通过将Apache httpd .conf更改为替换All..."Deny all"来尝试了很多"Allow all"但是,我仍然无法将其联机.
我正在服务器端进行身份验证和授权.
在angularJs中,我正在使用routeProvider进行路由.
$routeProvider.
when('/', {
templateUrl: 'partials/_home',
controller: 'HomeCtrl'
}).
when('/home', {
templateUrl: 'partials/_home',
controller: 'HomeCtrl'
}).
when('/users', {
templateUrl: 'partials/_users',
controller: 'UserCtrl'
}).
when('/users/:id', {
templateUrl: 'partials/_userForm',
controller: 'UserCtrl'
}).
otherwise({
redirectTo: '/'
});
Run Code Online (Sandbox Code Playgroud)
这里是要解决的问题,当我得到403角度没有显示服务器页面时,它只是没有做任何事情.

有人建议如何处理这个问题吗?
经过大量的谷歌搜索和Stackoverflowing,我仍然不清楚,因为许多文章和问题/答案太笼统(包括403 Forbidden vs 401 Unauthorized HTTP响应,这不是专门针对我的用例).
问题:当用户未登录并请求查看仅应向登录用户显示的某些页面时,正确的HTTP状态代码是什么?
我刚刚在我的专用服务器上安装了lighttpd,mod_fastcgi已启用,所以我将以下行添加到lighttpd.conf文件中:
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/local/bin/php-cgi"
)
)
)
Run Code Online (Sandbox Code Playgroud)
但它仍然无济于事,因为403 - Forbidden当我尝试在我的网络浏览器中输入PHP文件时,我收到了消息...当我index.php从我的网络根目录中删除该文件并将其放在index.html那里时,一切都很好,并且没有错误,无论index.php文件有100行还是只有一行 - <?php echo 'test'; ?>它总是显示出来403 - Forbidden,我现在已经没有想法了.
为什么会这样?
ls -la 我的网站根目录:
#
total 6
drwxr-xr-x 15 root wheel 1536 Jul 18 10:23 .
drwxr-xr-x 4 root wheel 512 Jul 18 08:45 ..
drwxr-xr-x 2 www www 512 Jul 1 02:36 cache
drwxr-xr-x 2 www www …Run Code Online (Sandbox Code Playgroud) 这里已经发布了几个关于在特殊情况下返回404而不是403的问题(例如,.ht*文件或某个目录),但我无法弄清楚如何简单地替换所有 403响应("好吧,它存在,但你仍然必须在404中找到一种方式("抱歉,从未听说过").我希望有一个简单的解决方案,不需要更新正则表达式或.htaccess的其他位来匹配站点更改,只需一个简单的指令:"每当你决定返回403时,返回404代替"到整个站点,无论配置如何变化.
然后,如果顶级.htaccess包含"Options -Indexes",并且任何给定目录不包含index.html(或者equiv),则裸目录URL将返回404,但是如果我将index.html添加到该目录,相同的裸目录URL将返回index.html,不需要任何.htaccess文件的更新.
我甚至不关心,如果我曾经密码一个目录,一个错误的密码返回404(因为404 - > 403映射).在那种情况下,我没有通过返回404隐藏任何东西,但它也没有造成任何伤害.如果有办法取消对特殊情况的一般403-> 404映射(而不是特殊情况下的DO),那可能会更有用.
当然,如果我忽略了什么,请直截了当地说.
编辑:Drat.我试图在这里写一个质量好的问题,但我在第二段中对"选项 - 索引"行为的描述结果证明是错误的.没有该行,如果存在于目录中,则裸目录URL显示"index.html"; 否则,它会显示目录的内容.(如果index.html存在,将/ dir转发到/dir/index.html是Web主机的默认设置,除非我弄错了.)添加"Options -Indexes"行会阻止它在公共场所播放我的衣物(返回403,而不是404,但仍然比暴露dir内容更好),但现在即使index.html存在,裸目录URL也会返回403.
我希望一个裸露的目录URL"mysite.com/mydir"显示/mydir/index.html如果它存在,"404"如果它没有,但显然它不仅仅是用404替换403s.
我正在使用Windows Server 2012和IIS 8.5.我为网站设置了SSL,SSL设置为:Require Required and Require Client Certificates.
我发送给服务器的客户端证书是由自签名权限发出的(我们称之为MyCompany CA).MyCompany CA证书已成功安装在本地计算机帐户 - 受信任的根证书颁发机构中.它的到期日期是2039,客户端证书的到期日期也是如此.
但是,通过所有这些设置,我收到错误403.16作为结果.我启用了失败请求跟踪规则并设法记录错误请求并获得了一些额外的详细信息:
52.- MODULE_SET_RESPONSE_ERROR_STATUS - 警告ModuleName - IIS Web核心通知 - BEGIN_REQUEST HttpStatus - 403 HttpReason - 禁止HttpSubStatus - 16 ErrorCode - 已处理证书链,但终止于信任提供程序不信任的根证书.(0x800b0109)ConfigExceptionInfo
我已经检查了多个关于结果403.16和错误代码0x800b0109的站点,并且所有站点都指向未在本地计算机 - 受信任的根证书颁发机构中安装的证书颁发机构,但这不是我的情况.
谢谢!
如果有人请求访问他不允许看到的实体,应该返回什么状态代码?你可能会说这是403:禁止.但通常的做法是返回404吗?我不希望有人知道,如果他不被允许看到它,这个实体就会存在.你怎么看?
http ×3
php ×2
security ×2
.htaccess ×1
iis ×1
java ×1
javascript ×1
jquery ×1
lighttpd ×1
post ×1
rest ×1
spring-mvc ×1
ssl ×1
symfony ×1
wampserver ×1