小编Cha*_*erV的帖子

如何将JAAS授权检查委托给Shiro?

我正在开发一个需要基于对象的身份验证和授权的服务器端应用程序.我喜欢Shiro的简单性,但为了与JAAS兼容,我编写了一个使用Apache Shiro作为底层机制的LoginModule.

但我的问题是我找不到将JAAS授权检查委托给Shiro的方法.我怎样才能做到这一点?

java authentication authorization jaas shiro

64
推荐指数
1
解决办法
2661
查看次数

使用Google Vision API的媒体记录器

我正在使用Android vision API中的FaceTracker示例.但是,我在录制视频时遇到了困难,同时在它们上面绘制了叠加层.

一种方法是将位图存储为图像并使用FFmpeg或Xuggler将它们合并为视频,但我想知道如果我们可以在预计投影时在运行时录制视频,是否有更好的解决方案.

更新1: 我使用媒体记录器更新了以下类,但录制仍然无法正常工作.当我调用triggerRecording()函数时抛出以下错误:

MediaRecorder:以无效状态调用:4

我在清单文件中有外部存储权限.

更新2:

我在代码中修复了上述问题,并在onSurfaceCreated回调中移动了setupMediaRecorder().但是,当我停止录制时,它会抛出运行时异常.根据文档,如果没有视频/音频数据,将抛出运行时异常.

那么,我在这里错过了什么?

public class CameraSourcePreview extends ViewGroup {
    private static final String TAG = "CameraSourcePreview";

    private static final SparseIntArray ORIENTATIONS = new SparseIntArray();

    static {
        ORIENTATIONS.append(Surface.ROTATION_0, 90);
        ORIENTATIONS.append(Surface.ROTATION_90, 0);
        ORIENTATIONS.append(Surface.ROTATION_180, 270);
        ORIENTATIONS.append(Surface.ROTATION_270, 180);
    }

    private MediaRecorder mMediaRecorder;
    /**
     * Whether the app is recording video now
     */
    private boolean mIsRecordingVideo;

    private Context mContext;
    private SurfaceView mSurfaceView;
    private boolean mStartRequested;
    private boolean mSurfaceAvailable;
    private CameraSource mCameraSource; …
Run Code Online (Sandbox Code Playgroud)

android android-camera android-mediarecorder google-vision android-vision

35
推荐指数
1
解决办法
2523
查看次数

在Mono中使用WebRequest的麻烦

我在ServiceStack Web应用程序中使用WebRequest有一个非常奇怪的问题(由Mono上的XSP托管).似乎请求模块的注册以一种非常奇怪的方式工作; 我正在使用WebRequest创建HTTP请求,但它失败了,因为它无法找到该"前缀"(HTTP)的创建者.

我看到的例外情况是NotSupportedException,我能够跟踪它没有为HTTP前缀注册创建者这一事实(我正在点击https://github.com/mono/mono/blob/master/mcs/class/ System/System.Net/WebRequest.cs,第479行)

编辑:更多细节:NotSupportedException抛出WebRequest.GetCreator,它使用URL前缀作为键来选择要返回的创建者; 在我的情况下,一个HttpRequestCreator.抛出异常是因为没有为"HTTP"前缀注册的创建者(实际上,根本没有创建者).

所以我搜索了一下,挖掘了Mono源代码,发现模块是(或应该)添加到system.web的webRequestModules部分的各种*.config文件中.

我查看了我的machine.config文件,它是: System.Net.HttpRequestCreator, System, Version=4.0.0.0

看看WebRequest Mono的来源 ,似乎前缀是从配置确实添加的,在类静态构造函数内(不是一个好的选择,恕我直言,但仍然......应该工作).

为了测试它,我尝试了添加HttpRequestCreatorsystem.net/webRequestModules我的web.config; 这是由XSP/Mono加载并导致重复的键异常(这是预期的,因为HttpRequestCreator应该已经加载,因为它已经存在于machine.config中).

更奇怪的是:如果我为Http添加一个模拟处理程序,就像这样:

bool res = System.Net.WebRequest.RegisterPrefix ("http", new MyHttpRequestCreator ());
Debug.Assert (res == false);
Run Code Online (Sandbox Code Playgroud)

断言有时会通过......有时候不会!(如果已经注册了相同前缀的创建者,则RegisterPrefix返回"false";我希望它总是返回false,但事实并非如此!再次,它是完全随机的)

当注册"失败"(即因为已经注册了"HTTP"前缀而返回false)时,WebRequest可以创建HTTP请求.就像调用RegisterPrefix"唤醒"静态构造函数并让它运行一样.

我很困惑:它似乎是执行WebRequest的静态构造函数时的竞争条件,但这没有意义(运行时保护带有锁的静态构造函数,IIRC)

我错过了什么?我该如何解决或解决这个问题?这是我的错(误解或遗漏某些东西)还是看起来像是一个Mono bug,因此我应该提交它吗?

细节:

mono --version Mono JIT编译器版本3.0.6(Debian 3.0.6 + dfsg-1~exp1~pre1)

(可能相关的,未回答的问题:单声道下WebRequest不支持HTTP协议)

mono httpwebrequest xsp servicestack

30
推荐指数
1
解决办法
1104
查看次数

如何干净地编辑差异/补丁文件?有没有补丁文件编辑器?

场景:我有一个可以干净地应用到我的工作文件的补丁文件,但我不想要补丁中的所有更改.

通常,我这样做vim example.patch,删除不需要的更改并适用patch -p0 -i example.patch但有时修补程序不适用,我必须重新开始.

是否有补丁文件编辑器,允许用户编辑和删除补丁的一部分,仍然可以干净地应用?

vim diff patch editor

28
推荐指数
3
解决办法
2万
查看次数

蓝牙LE扫描有时无法找到设备

我正在扫描蓝牙LE设备并作为外围设备运行(在Moto G第二代上运行Android 6.0)

我遇到的问题是,有时(随机似乎但经常)它不会找到我的任何其他外围设备,其他时候它工作正常.

我有一个配套的iOS设备运行类似的代码(扫描外围设备和充当外围设备),当Android扫描无法找到iOS设备时,我的iOS发现Android设备充当外围设备就好了.因此,似乎只是扫描方面的问题.

它不仅仅是找不到我的配套iOS设备,而且找不到任何蓝牙设备.当它工作时,它会找到我的配套iOS设备以及许多其他设备.

我已经尝试过使用和不使用ScanFilters,并得到同样的问题.我正在使用最低SDK为23的SDK 26构建.

我正在设置所需的权限,因为它有时会起作用.

相关代码如下:

private void startScanning() {
    mHandler = new Handler(mContext.getMainLooper());

    mHandler.postDelayed(new Runnable() {
        @Override
        public void run() {
            ScanSettings settings = new ScanSettings.Builder()
                                        .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
                                        .setReportDelay(0)
                                        .build();

            mBluetoothLeScanner.startScan(null, settings, mScanCallback);
        }
    }, 1000);
}

private ScanCallback mScanCallback = new ScanCallback() {
    @Override
    public void onScanResult(int callbackType, ScanResult result) {
        super.onScanResult(callbackType, result);

        if( result == null || result.getDevice() == null )
            return;

        Log.e("myTest", "Found Device");

        BluetoothDevice device = result.getDevice();
        final String deviceAddress = device.getAddress(); …
Run Code Online (Sandbox Code Playgroud)

android bluetooth bluetooth-lowenergy android-bluetooth

14
推荐指数
1
解决办法
4456
查看次数

如何计算所有满足MySQL条件的不同值?

我正在尝试编写一个查询来查找特定字段中的不同值,计算该值的出现次数,其中该特定值的所有实例都满足另一个列值,然后显示结果如下(更多解释为跟随):

示例db:

RowId    Status       MemberIdentifier
-----    ------       ----------------
1       In Progress   111111111
2       Complete      123456789
3       Not Started   146782452
4       Complete      111111111
5       Complete      123456789
6       Not Started   146782452
7       Complete      111111111
Run Code Online (Sandbox Code Playgroud)

期望的结果:

Status         MemberIdentifierCount 
------         ---------------------- 
Not Started    1
In Progress    1
Complete       1
Run Code Online (Sandbox Code Playgroud)

在上面的查询中,计算并显示具有给定状态的不同MemberIdentifier的数量.如果MemberIdentifier有两行,状态为"完成",但其中一行状态为"正在进行",则将其分组并计为正在进行中(即,MemberIdentifier = 111111111).要将MemberIdentifier分组并计为完成,其所有行的状态必须为"Complete"(即MemberIdentifier = 123456789).任何见解将不胜感激(MySQL新手).

mysql sql group-by count distinct

14
推荐指数
4
解决办法
1202
查看次数

如何使用MQTT处理JWT撤销

按照本Auth0文章中的说明,我使用"JWT"作为用户名并使用JWT令牌作为密码成功验证了MQTT客户端.

然而,在我的用例中,JWT令牌是短暂的.客户端必须在当前令牌的到期日期之前获取新令牌,然后将其提供给MQTT服务器.否则,服务器终止连接.

我的问题是:如何实现令牌更新?它是来自客户的发布消息吗?哪个主题?我是否断开客户端连接,并让客户端使用新令牌重新进行身份验证?或者还有另一种方式吗?

oauth jwt mqtt json-web-token auth0

13
推荐指数
1
解决办法
481
查看次数

UWP - 跨设备数据加密

我的UWP应用程序以加密形式将数据存储在设备上的本地SQLite数据库中.我使用Windows.Security.Cryptography.DataProtection静态数据类和数据流加密/解密(参考:https://docs.microsoft.com/en-us/windows/uwp/security/cryptography)

我提供了OneDrive数据备份工具,用户可以从一台设备将整个数据库备份到OneDrive,并在另一台设备上安装的应用程序中恢复它.这可以帮助用户在多个设备上使用应用程序,以及用户获取新设备的情况.

"LOCAL=user"DataProtectionProvider课堂上使用Descriptor (参考:https://docs.microsoft.com/en-us/uwp/api/windows.security.cryptography.dataprotection.dataprotectionprovider)

我希望如果我在两个不同的设备上使用我的Microsoft帐户登录并在一台设备上加密数据,然后在其他设备上恢复数据,那么数据应该被解密; 然而这并没有发生.

我也无法获得任何文档(除了上面列出的参考文献).我也搜索了MS以获得MS支持,但没有运气.有人可以帮我这个吗?

我的要求:在一个(Windows)设备上加密的数据应该在其他(Windows)设备中解密(当用户在两个设备上使用相同的Microsoft帐户登录时).

[UPDATE]

这是代码示例:

const BinaryStringEncoding encoding = BinaryStringEncoding.Utf8;
        const string strDescriptor = "LOCAL=user";        

public static async Task<string> ProtectTextAsync(string strClearText)

    {
        DataProtectionProvider Provider = new DataProtectionProvider(strDescriptor);

        IBuffer buffMsg = CryptographicBuffer.ConvertStringToBinary(strClearText, encoding);

        IBuffer buffProtected = await Provider.ProtectAsync(buffMsg);

        return CryptographicBuffer.EncodeToBase64String(buffProtected);
    }

    public static async Task<String> UnprotectTextAsync(string strProtected)
    {
        DataProtectionProvider Provider = new DataProtectionProvider();

        IBuffer buffProtected = CryptographicBuffer.DecodeFromBase64String(strProtected);

        IBuffer buffUnprotected = await Provider.UnprotectAsync(buffProtected); …
Run Code Online (Sandbox Code Playgroud)

c# security encryption uwp

12
推荐指数
1
解决办法
639
查看次数

如何使用TCMalloc?

首先,我想知道如何TCmalloc在Ubuntu中安装.然后我需要一个程序使用TCmalloc.然后我需要一个小程序来表明它TCmalloc比工作更好PTmalloc.

tcmalloc

11
推荐指数
4
解决办法
2万
查看次数

隐藏禁用选择Internet Explorer中的选项> 11使用angularjs

我想知道如何隐藏optionsAngularJS for IE中的残疾人?更清楚的是看看这个小提琴:https: //jsfiddle.net/s723gqo1/1/

我使用它css来隐藏chrome/firefox中的禁用选项,但它们在IE中不起作用:

select option[disabled]:first-child {
  display: none;
}
Run Code Online (Sandbox Code Playgroud)

我在这里看到其他问题,建议使用JavaScript删除禁用选项,但我无法将其插入我的用例.

任何帮助表示赞赏!

编辑: 我脑子里有这些元标记:

<!DOCTYPE html>

  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
Run Code Online (Sandbox Code Playgroud)

编辑2 这个答案/sf/answers/1426153011/太笼统了,我无法用这个答案解决我的问题,因为我知道应该用javascript完成,但我的问题是如何?

我应该在提供的jsfiddle中将删除和添加禁用选项的逻辑放在哪里?

编辑3 我在我的项目中实现了提供的答案,但不幸的是,它没有解决我的问题.

通过此链接提供的小提琴https://jsfiddle.net/rsuuwkh9/呈现默认选择选项,如下所示: 在此输入图像描述

但在我的项目中,它呈现如下:

在此输入图像描述

问题是,当显示默认选项的条件为真并且它变为false然后再次为真时,在我的项目中默认选项消失但是在提供的答案小提琴它恢复到它应该的位置,如果有人我会很高兴帮我处理这个案子!

html css select angularjs drop-down-menu

9
推荐指数
1
解决办法
1426
查看次数