小编The*_*ear的帖子

如何获取活动用户的UserDetails

在我的控制器中,当我需要活动(登录)用户时,我正在执行以下操作来获取我的UserDetails实现:

User activeUser = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
log.debug(activeUser.getSomeCustomField());
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我认为Spring可以在这样的情况下让生活更轻松.有没有办法将UserDetails自动装配到控制器或方法?

例如,类似于:

public ModelAndView someRequestHandler(Principal principal) { ... }
Run Code Online (Sandbox Code Playgroud)

但是,而不是得到UsernamePasswordAuthenticationToken,我得到了一个UserDetails

我正在寻找一个优雅的解决方案.有任何想法吗?

java spring spring-mvc spring-security

165
推荐指数
6
解决办法
12万
查看次数

在两个或多个项目之间共享公共代码(例如域类)的最佳方法是什么?

我们正在开发一个由两个Eclipse项目组成的Web应用程序.一个项目是基于HTTP的RESTful Web服务; 另一个项目是一个网站.两者都将部署为WAR.最初,两者都将部署在同一个应用服务器实例下,但最终它们将位于不同的盒子上.

该网站应用程序使用RESTful WS应用程序.显然,会有代码 - 特别是域类 - 这两个项目都很常见.例如,可能有一个位于<app>/users的资源,它暴露了用户对象上的CRUD操作; 要更新用户,网站应用程序会将XML编组的用户对象POST到<app>/users.对<app>/users/1执行GET将返回XML编组的User对象.

显然,由于各种原因,在两个项目中都有一个User类非常愚蠢.所以我想知道最好的方法是什么?将公共代码放在两个项目之间共享的JAR中是我过去所做的,但有更好或更简单的方法吗?

编辑:删除RESTful引用.除了语义之外,在两个Eclipse项目之间共享公共代码的正确方法是什么?

java eclipse web-services

20
推荐指数
4
解决办法
4570
查看次数

使用不同的源处理表单和HTTP基本身份验证

我已经有了表单登录和Basic auth并在a的帮助下并排工作DelegatingAuthenticationEntryPoint.

我要做的是让用户通过登录表单通过标准"A"进行身份验证,并让用户通过基本身份验证请求根据标准"B"进行身份验证.

某些应用程序的资源通过RESTful服务公开(可通过Basic auth访问).他们可以输入生成的键/值对,而不是让用户输入自己的凭据来进行REST服务调用,而是专门用于REST服务,以后可以由用户或应用程序管理员撤销.

我更愿意在两种身份验证方法之间共享尽可能多的特定于安全性的bean.我知道我需要单独的UserDetailsServices,因为表单登录查询我的users表,Basic auth将查询我的service_credentials表.

在Spring Security中实现此类配置的正确方法是什么?

spring-security

7
推荐指数
1
解决办法
7324
查看次数

Android:FrameLayout 子类不绘制

这是,什么工作:

a) 在 main.xml 中有两个 ImageView 的 FrameLayout

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:id="@+id/frameLayout1"
    android:layout_height="wrap_content">

    <ImageView android:src="@drawable/radar_background"
        android:id="@+id/background" android:layout_width="wrap_content"
        android:layout_height="wrap_content"></ImageView>

    <ImageView android:src="@drawable/radar_sector" android:id="@+id/sector"
        android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

b) 背景旋转动画,而前景扇区保持不变

因为我需要对背景图像做更多的工作,所以我把它放到了一个 FrameLayout 子类中,并相应地更改了 main.xml:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:id="@+id/frameLayout1"
    android:layout_height="wrap_content">

    <com.decades.SensorTest.RadarView
        android:id="@+id/background" android:layout_width="wrap_content"
        android:layout_height="wrap_content" /> 
    <ImageView android:src="@drawable/radar_sector" android:id="@+id/sector"
        android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

这是新的 RadarView.java:

public class RadarView extends FrameLayout {

    private Bitmap mRadar;

    public RadarView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public RadarView(Context context) {
        super(context);
        init();
    }
    private void init() {
        mRadar = …
Run Code Online (Sandbox Code Playgroud)

performance android custom-view drawbitmap

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