小编Mak*_*sim的帖子

GWT按钮中的图像

如何将图像添加到GWT按钮或如何使用Mosaic的按钮添加图像.我无法弄清楚如何在我的代码中使用这个例子.我需要添加哪些库.我的项目中有Mosaic Library,我可以使用它,但是他们在那里的例子对我不起作用.

谢谢

java gwt gwt-mosaic

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

Spring Security OAuth2的Web和移动客户端

我试图围绕OAuth2和Spring Security OAuth,特别是OAuth提供商服务.我正在尝试实现以下内容:

  1. OAuth提供商
  2. 资源服务器(应使用OAuth提供程序保护的RESTful Web服务(1))
  3. Web客户端(使用Spring Security保护但应使用OAuth Provider(1)对用户进行身份验证的Web客户端应用程序
  4. 原生移动客户端(Android和iOS)也应使用OAuth Provider(1)进行身份验证

所有这些模块彼此独立,即在不同的项目中分开,并将托管在不同的域上,例如(1)http://oauth.web.com,(2)http://rest.web.com, (3)http://web.com

我的两个问题是:

A.如何实施Web客户端项目,以便在用户登录受保护页面或单击"登录"按钮时,重定向到OAuth提供者URL,登录,并在具有所有用户角色的Web客户端上进行身份验证,以及同时需要知道使用了哪个客户端.@EnableResourceServer(与实现资源服务器的方式相同;请参阅下面的代码)以获取用户的详细信息?我是否必须管理访问令牌并始终将其包含在对资源服务器的调用中,或者它可以以某种方式自动完成?

B.在我将要开发的移动应用程序上实现安全性的最佳方法是什么.我是否应该使用密码宏来进行此身份验证,因为应用程序将由我构建,我将在本机屏幕中将用户名和密码作为基本身份验证通过SSL发送到服务器?是否有任何示例我可以查看与Spring Security OAuth的对话并返回用户详细信息.

这是我对OAuth项目(1)和资源项目(2)的实现:

1. OAuth提供商

OAuth2服务器配置(大部分代码来自HERE)

@Configuration
@EnableAuthorizationServer
public class OAuth2ServerConfig extends AuthorizationServerConfigurerAdapter {

    @Autowired
    @Qualifier("authenticationManagerBean")
    private AuthenticationManager authenticationManager;

    @Autowired
    DataSource dataSource;

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
        endpoints
                .tokenStore(tokenStore())
                .approvalStore(approvalStore())
                .authorizationCodeServices(authorizationCodeServices())
        ;
    }

    @Bean
    public JdbcClientDetailsService clientDetailsService() {
        return new JdbcClientDetailsService(dataSource);
    }

    @Bean
    public TokenStore tokenStore() {
        return new JdbcTokenStore(dataSource);
    }

    @Bean …
Run Code Online (Sandbox Code Playgroud)

java spring oauth spring-security spring-security-oauth2

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

在Spring Data Query中过滤子对象

我有以下域模型:

Playlist- > List<PlaylistItem>- >Video

@Entity
class Playlist{
   // id, name, etc
   List<PlaylistItem> playlistItems;
   // getters and setters
}


@Entity
class PlaylistItem{
   // id, name, etc.
   Video video;
   // getters and setters
}


@Entity
class Video{
   // id, name, etc.
   boolean isDeleted;
   // getters and setters
}
Run Code Online (Sandbox Code Playgroud)

我的存储库:

public interface PlaylistRepository extends JpaRepository<Playlist, Long> {
   List<Playlist> findAll();
}
Run Code Online (Sandbox Code Playgroud)

现在,如何返回仅包含现有视频的播放列表,即如果分配给该播放列表项目的数据库中有三个视频,并且其中一个视频的isDeleted设置为true,那么我只需要获取两个项目.

java spring spring-data spring-data-jpa

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

Google AppEngine会话示例

我刚刚在我的Google AppEngine/Java + GWT应用程序中启用了Session.我该如何使用它?如何从中获取会话ID和播放所有好处?是否有任何简单登录页面的真实示例,我只是输入LoginName和Password,然后通过RPC调用进入服务器,对数据库进行身份验证并将会话ID发送回客户端.

我已经有以下代码,但不知道下一步该做什么:

GWT登录表格:

public class LoginForm {
    private final LoginServiceAsync loginService = GWT.create(LoginService.class);

    VerticalPanel loginVp = new VerticalPanel();
    TextBox loginTxt = new TextBox();
    TextBox passTxt = new TextBox();

    Button loginBtn = new Button("Login");

    public Widget getLoginWidget(){

        loginBtn.addClickHandler(new ClickHandler(){

            public void onClick(ClickEvent arg0) {

                loginService.authenticateUser(loginTxt.getText(), passTxt.getText(), 
                        new AsyncCallback<String>(){

                            public void onFailure(Throwable caught) {
                                InfoPanel.show(InfoPanelType.HUMANIZED_MESSAGE, "No Connetion", "Problem conneting to the server.");
                            }

                            public void onSuccess(String result) {
                                InfoPanel.show(InfoPanelType.HUMANIZED_MESSAGE, "Session ID", "Your session id is: " + …
Run Code Online (Sandbox Code Playgroud)

java session google-app-engine

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

在客户端刷新GWT应用程序

我用GWT编写了应用程序.它适用于客户端.但是,当我在我的应用程序中更改某些内容,重新编译然后部署到服务器和客户端访问我的应用程序时,他的浏览器没有获取应用程序的新版本,而是使用以前的缓存版本.这会触发RPC错误和其他问题.

如何在访问我的页面时强制客户端浏览器获取应用程序的新版本,如果它与服务器上的版本匹配,则使用缓存版本.

gwt caching browser-cache

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

登录后需要Spring安全性和操作

用户登录Spring Security后,我正在尝试实现一个需要操作的屏幕?我有一个要求,用户必须执行以完成表单(更改密码,接受使用条款等),然后一旦用户完成该操作,他就可以使用应用程序的其余部分.我正在使用Spring OAuth2和使用Spring Security流程的登录屏幕.

到目前为止,我已经尝试使用http.formLogin().successHandler()自定义实现SavedRequestAwareAuthenticationSuccessHandler,它会检测用户是否需要执行操作,然后在用户填写表单时将用户重定向到页面,但问题是如果用户导航离开该页面,他将登录到应用程序并可以在不跳过表单的情况下使用它.但我要做的是阻止用户建立会话,直到完成Action Action表单之后.一旦完成,用户应自动登录(例如,如果用户需要同意使用条款,则应该在不输入密码的情况下登录)

这是我到目前为止自定义处理程序的代码:

public class CustomLoginSuccessHandler extends SavedRequestAwareAuthenticationSuccessHandler {

    @Autowired
    UserService userService;

    public final static String TARGET_URL_SESSION_ATTR_NAME = "target-url";

    public CustomLoginSuccessHandler(String defaultTargetUrl) {
        setDefaultTargetUrl(defaultTargetUrl);
    }

    @Override
    public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws ServletException, IOException {
        HttpSession session = request.getSession();


        AuthorityUser authorityUser = (AuthorityUser)authentication.getPrincipal();

        String userId = authorityUser.getUserId();

        User u = userService.getById(userId);

        Boolean changeRequiredDob = u.getChangeRequiredDob();
        Boolean changeRequiredPwd = u.getChangeRequiredPwd();
        Boolean changeRequiredTou = u.getChangeRequiredTou();

        if(changeRequiredDob || changeRequiredPwd || changeRequiredTou){

            String …
Run Code Online (Sandbox Code Playgroud)

java session spring-security spring-boot spring-security-oauth2

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

GWT图像裁剪

我正在使用GWT构建一个网站,并希望添加图像裁剪功能,以便用户可以上传他们的个人资料图像,然后根据需要裁剪.我正在寻找类似于Jcrop但在GWT中的东西.

我发现这个这个代码示例如何在客户端裁剪图像,但是没有UI部分,用户可以在其中选择需要裁剪的部分图像.

在SO上也有几个类似的问题(例如,这个 GWT和Jcrop),但是没有人给出使用纯GWT的图像选择部分的例子.如果你有一个想法如何做,请分享,我相信其他人将来会利用这一点.

以下是我正在寻找的例子: 在此输入图像描述

gwt crop image-processing

10
推荐指数
2
解决办法
1882
查看次数

访问Android Wear Fit数据

我正在开发Samsung Gear Live(谷歌I/O版)上的Android Wear应用程序,它需要访问心率和步数计算历史数据.我知道以后可以使用Google Fit SDK访问这些数据,但是现在可以不使用该SDK就可以读取该数据吗?

我更愿意在没有ROOTing my G Watch的情况下访问这些数据.

以下是我想要提取的历史数据的屏幕截图:

步骤历史数据:

在此输入图像描述 在此输入图像描述

心率历史数据:

在此输入图像描述

更新10/28/2014

谷歌发布Google Fit SDK可在官方网站上获得

java android google-fit-sdk google-fit wear-os

10
推荐指数
2
解决办法
6085
查看次数

ByteArray资源使用

我有一个 pdf 模板,它存储在物理路径或应用程序类路径中。我必须阅读此模板并根据每个请求的用户输入填写每个请求的字段。我想将此文件转换为字节并在应用程序启动期间将其存储在配置 bean 中,而不是每次都读取模板文件。为此,我可以在 Spring 中使用 ByteArrayResource 或其他更好的方法。

我的目标不是每次都读取模板文件。

java spring-boot

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

使用GWT下载动态文件

我有一个GWT页面,用户输入数据(开始日期,结束日期等),然后这些数据通过RPC调用进入服务器.在服务器上,我想生成带有POI的Excel报告,并允许用户将该文件保存在本地计算机上.

这是我将测试代码流回客户端的测试代码,但出于某种原因,我认为当我使用RPC时,它不知道如何将文件传输到客户端:

public class ReportsServiceImpl extends RemoteServiceServlet implements ReportsService {
    public String myMethod(String s) {

        File f = new File("/excelTestFile.xls");

        String filename = f.getName();

        int length = 0;

        try {
            HttpServletResponse resp = getThreadLocalResponse();
            ServletOutputStream op = resp.getOutputStream();
            ServletContext context = getServletConfig().getServletContext();
            resp.setContentType("application/octet-stream");
            resp.setContentLength((int) f.length());
            resp.setHeader("Content-Disposition", "attachment; filename*=\"utf-8''" + filename + "");

            byte[] bbuf = new byte[1024];
            DataInputStream in = new DataInputStream(new FileInputStream(f));

            while ((in != null) && ((length = in.read(bbuf)) != -1)) {
                op.write(bbuf, 0, length);
            }

            in.close();
            op.flush(); …
Run Code Online (Sandbox Code Playgroud)

java gwt rpc servlets

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