小编jav*_*vaj的帖子

Xamarin 应用程序的 Azure AD 身份验证无法在下游 Web API 上进行身份验证

我构建了一个 ASP.NET core Web 应用程序,调用 ASP.NET Core Web API,该 API 使用 Azure AD 进行保护,如此处所述

我还构建了一个 Xamarin 移动应用程序,该应用程序对 Web 应用程序的 Azure 应用程序服务进行身份验证并利用下游 Web API,如此处所述

Web App可以毫无问题地访问API;但是,Xamarin 应用程序失败并显示 HTTP 响应消息:未经授权。

利用此处Microsoft Identity 团队的指导,我能够找到失败的原因。

Microsoft.AspNetCore.Authorization.DefaultAuthorizationService: Information: Authorization failed. These requirements were not met:
DenyAnonymousAuthorizationRequirement: Requires an authenticated user.
Run Code Online (Sandbox Code Playgroud)

需求的源代码片段显示了失败的地方。具体来说,它是在 IsAuthenticated 检查上。

public class DenyAnonymousAuthorizationRequirement : AuthorizationHandler<DenyAnonymousAuthorizationRequirement>, IAuthorizationRequirement
{
    protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, DenyAnonymousAuthorizationRequirement requirement)
    {
        var user = context.User;
        var userIsAnonymous =
            user?.Identity == null ||
            !user.Identities.Any(i …
Run Code Online (Sandbox Code Playgroud)

c# azure-active-directory .net-core

5
推荐指数
0
解决办法
280
查看次数

Java交叉孵化纹理

有谁知道如何在Java中重新创建交叉散列纹理?下面的C#代码显示了如何为.NET框架实现此目的.Java片段很接近,但我无法正确地将线条旋转45度.

C#

HatchBrush crossHatch =
        new HatchBrush(HatchStyle.Cross, somecolor, somecolor);
Run Code Online (Sandbox Code Playgroud)

Java的

BufferedImage bufferedImage =
        new BufferedImage(5, 5, BufferedImage.TYPE_INT_ARGB);

Graphics2D g2 = bufferedImage.createGraphics();

g2.setColor(Color.BLUE);
g2.fillRect(0, 0, 5, 5);
g2.setColor(pinColor);
g2.fillOval(0, 0, 5, 5);

// paint with the texturing brush
Rectangle2D rect = new Rectangle2D.Double(0, 0, 5, 5);
g2d.setPaint(new TexturePaint(bufferedImage, rect));
g2d.fill(shape);
Run Code Online (Sandbox Code Playgroud)

提前致谢.

java graphics rendering

4
推荐指数
1
解决办法
3385
查看次数

在JFormattedTextField中设置Text

我正在使用下面的代码片段来创建一个JFormattedTextField.通过GUI文本字段输入值时,格式按预期工作.但是,当我以编程方式设置值时,格式不会发生.我怎么能强迫这种情况发生?

JFormattedTextField myTextField = new JFormattedTextField(new DecimalFormat("#0.###"));
// Formatting Does Not Occur
myTextField.setText("555.55555");
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
1
解决办法
3796
查看次数

类对象的通用类型规范

我正在使用HashMap和下面显示的方法来跟踪类类型的更改侦听器.IDE正在发出警告

[rawtypes] found raw type: java.lang.Class
  missing type parameters for generic class java.lang.Class<T>. 
Run Code Online (Sandbox Code Playgroud)

需要指定什么类型的类来解决警告?

private HashMap<Class, Set<ChangeListener>> classChangeListeners;

/**
 * Adds a ChangeListener to the listener list for the specified class type. The class type
 * specified must be a subclass of {@link BusinessObject}.
 *
 * @param  <T>  the type of BusinessObject.
 * @param  cls  the class type.
 * @param  listener  the ChangeListener to be added.
 */
public <T extends BusinessObject> void addChangeListener(Class<T> cls, ChangeListener listener)
{
 if (!classChangeListeners.containsKey(cls))
 { …
Run Code Online (Sandbox Code Playgroud)

java generics

4
推荐指数
1
解决办法
1989
查看次数

形状为"实际尺寸"

将Java中的形状渲染为"实际大小"的简便方法是什么?例如,我有一个直径为1"的管子,我想在屏幕上将其描绘成1"圆的轮廓.Graphics2D方法drawOval(int x,int y,int width,int height)采用高度和宽度(以像素为单位).将像素大小转换为屏幕渲染大小的步骤是什么?

提前致谢.

java

3
推荐指数
1
解决办法
925
查看次数

Google Collections Distinct Predicate

如何使用Google Collections Collections2.filter方法实现不同的谓词?

java guava

3
推荐指数
1
解决办法
3921
查看次数

使用Java以编程方式下载CSV文件

场景:我用来研究股票数据的网站在页面上有一个链接,用于将数据导出到电子表格.将鼠标悬停在导出链接上时显示的URL的格式为http://www.stocksite.com/historical/export.php?symbol=C.

问题:相反,我想手动访问每个库存的页面,我想自动完成任务.从Java,我如何以编程方式使用股票代码调用网站并保存导出的csv文件?URL和URLConnection类似乎是一个显而易见的起点,但我不确定从哪里开始.

java http

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

确定目录是否包含文件

我有java.io.File对象A和B,其中A代表一个目录,B代表一个文件.B可以是绝对路径或低于A的0或更多级别的相对路径.确定B是否包含B的最有效方法是什么?

例如,

A是C:\ Users\bill\Desktop\abc\xyz123,B是C:\ Users\bob\Documents\inc\data.inc

要么

A是C:\ Users\bill\Desktop\abc\xyz123,B是C:\ Users\bob\Documents\x1\y1\inc\data.inc

要么

A是C:\ Users\bill\Desktop\abc\xyz123,B是..\..\..\Documents\inc\data.inc

java

3
推荐指数
1
解决办法
6260
查看次数

使用XMLEncoder的Java Bean持久性

我编写了一个包含HashMultiMap的bean类(来自Guava库).我想使用JRE的XMLEncoder对bean进行XML编码.使用自定义PersistenceDelegate我已经成功地将bean写入文件.但是,当我尝试反序列化XML时,我得到了异常:

java.lang.NoSuchMethodException: <unbound>=HashMultimap.put("pz1", "pz2")

我究竟做错了什么?

// create the bean
SomeBean sb = new SomeBean();

// add some data
HashMultimap<String, String> stateMap = HashMultimap.create();    
stateMap.put("pz1", "pz2");
stateMap.put("pz3", "pz4");

sb.setStateMap(stateMap);

// encode as xml 
FileOutputStream os = new FileOutputStream("myXMLFile.xml");
XMLEncoder encoder = new XMLEncoder(os);
encoder.setPersistenceDelegate(HashMultimap.class, new CustomPersistenceDelegate());
encoder.writeObject(sb);

// decode the xml
FileInputStream is = new FileInputStream("myXMLFile.xml"); 
XMLDecoder decoder = new XMLDecoder(is);
Object deSerializedObject = decoder.readObject();

class CustomPersistenceDelegate extends DefaultPersistenceDelegate
{
    protected Expression instantiate(Object oldInstance, Encoder out)
    {
        return new Expression(oldInstance, oldInstance.getClass(), …
Run Code Online (Sandbox Code Playgroud)

java persistence javabeans

3
推荐指数
1
解决办法
2267
查看次数

Java泛型通配符捕获警告

下面的 SCCE 显示了实现接口 Marker 的 2 个类(B 和 C)。对于每个实现 Marker 的类,都有一个相应的类实现通用 Handler 接口(B_Handler、C_Handler)。映射用于将 Pair.second 的类类型与其关联的处理程序相关联。代码按预期执行;但是,我收到一个编译时警告:

警告:[unchecked] unchecked cast Handler h1 = (Handler) (dispatch.get(p1.second.getClass())); 要求:找到的处理程序:处理程序,其中 CAP#1 是一个新的类型变量:CAP#1 从 ? 扩展标记

除了@SuppressWarnings(value = "unchecked") 之外,解决这个问题的最干净的方法是什么?

package genericpair;

import java.util.HashMap;
import java.util.Map;

import javax.swing.SwingUtilities;

public class GenericPair
{
    public class A
    {
    }

    public interface Marker
    {
    }

    public class B implements Marker
    {
    }

    public class C implements Marker
    {
    }

    public Pair<A, Marker> getTarget()
    {
        A a = new A();
        C …
Run Code Online (Sandbox Code Playgroud)

java generics

3
推荐指数
1
解决办法
859
查看次数