我构建了一个 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) 有谁知道如何在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)
提前致谢.
我正在使用下面的代码片段来创建一个JFormattedTextField.通过GUI文本字段输入值时,格式按预期工作.但是,当我以编程方式设置值时,格式不会发生.我怎么能强迫这种情况发生?
JFormattedTextField myTextField = new JFormattedTextField(new DecimalFormat("#0.###"));
// Formatting Does Not Occur
myTextField.setText("555.55555");
Run Code Online (Sandbox Code Playgroud) 我正在使用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中的形状渲染为"实际大小"的简便方法是什么?例如,我有一个直径为1"的管子,我想在屏幕上将其描绘成1"圆的轮廓.Graphics2D方法drawOval(int x,int y,int width,int height)采用高度和宽度(以像素为单位).将像素大小转换为屏幕渲染大小的步骤是什么?
提前致谢.
如何使用Google Collections Collections2.filter方法实现不同的谓词?
场景:我用来研究股票数据的网站在页面上有一个链接,用于将数据导出到电子表格.将鼠标悬停在导出链接上时显示的URL的格式为http://www.stocksite.com/historical/export.php?symbol=C.
问题:相反,我想手动访问每个库存的页面,我想自动完成任务.从Java,我如何以编程方式使用股票代码调用网站并保存导出的csv文件?URL和URLConnection类似乎是一个显而易见的起点,但我不确定从哪里开始.
我有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
我编写了一个包含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) 下面的 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)