1. if blacklist and whitelist is empty: load all * 2. if blacklist is empty and whitelist non empty: assume blacklist is ["*"] * 3. if blacklist non empty: usual blacklist behavior * 4. if whitelist non empty: override blacklist
时间: 2023-06-16 18:02:02 浏览: 171
这是一些关于黑名单和白名单的规则:
1. 如果黑名单和白名单都为空,那么加载所有内容。
2. 如果黑名单为空但是白名单不为空,那么假设黑名单为 ["*"],即除了白名单中列出的内容,其他所有内容都会被屏蔽。
3. 如果黑名单不为空,则按照通常的黑名单规则进行屏蔽。
4. 如果白名单不为空,则覆盖黑名单的规则,即只有白名单中列出的内容可以显示,其他所有内容都会被屏蔽。
相关问题
from django.http import HttpResponseForbidden,HttpResponse class BlackListMiddleware(): BLACKLIST = [ 'Python3.6' ] def __init__(self, get_response): self.get_response = get_response def __call__(self, request): # ********** Begin ********** # response = self.request.get("localhost:8080/admin") return response # ********** End ********** #
根据您的代码,我理解您正在编写一个Django中间件,用于检查请求的User-Agent是否在黑名单中。如果请求的User-Agent在黑名单中,则返回403 Forbidden响应,否则将请求传递给下一个中间件或视图函数。
以下是您提供的代码,我对其进行了一些修改,以便实现您的要求:
```python
from django.http import HttpResponseForbidden
class BlackListMiddleware():
BLACKLIST = [
'Python3.6'
]
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
user_agent = request.META.get('HTTP_USER_AGENT', '')
if user_agent in self.BLACKLIST:
return HttpResponseForbidden('Your user agent is not allowed to access this resource.')
response = self.get_response(request)
return response
```
在上述代码中,我们定义了一个名为 `BlackListMiddleware` 的中间件类,其中包含一个常量 `BLACKLIST`,用于存储黑名单。在 `__call__` 方法中,我们首先获取请求的 User-Agent,并检查其是否在黑名单中。如果在黑名单中,则返回403 Forbidden响应;否则,将请求传递给下一个中间件或视图函数。
注意,我们使用 `request.META` 字典获取请求头信息,其中包含 User-Agent 信息。
希望这可以帮助您实现您的需求。
sudo: gedit/etc/modprobe.d/blacklist-nouveau.conf:找不到命令
这个问题看起来像是你在尝试编辑一个文件时输入了错误的命令。正确的命令应该是:
```
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
```
请注意,命令和文件名之间有一个空格。这个命令会使用sudo权限打开gedit编辑器并打开blacklist-nouveau.conf文件以进行编辑。如果你仍然遇到问题,请提供更多的上下文信息,以便我可以更好地理解您的情况。
阅读全文