Tag: angular

如何将Angular ts Http(带凭据)与Spring Security集成

如果有一个文档或示例可供公众使用,以展示如何将Angular http(与凭据)与Spring Security集成,那将是最好的。 我有办法登录,我将在下面显示代码,但我认为必须有更好的方法。 也许在Http header withCredentials中有选项,但是你提供了你的凭据? 它保持idToken不受外部认证。 服务(Google+)和标题中的类型(确定身份validation服务的类型),因此您不需要将它们作为请求参数或路径变量传递。 然后在后端(Spring Java)中,有一个spring AOP,用于在validation后将用户保存到SecurityContext。 Angular Http Call import { Http, Headers, RequestOptions } from ‘@angular/http’; … constructor(private http: Http…){…} … search(){ let options ; if (this.loginService.user) { let headers = new Headers({ ‘idToken’: this.loginService.user.idToken,’type’:this.loginService.user.type}); options = new RequestOptions({ headers: headers }); } return this.http .get(“searchurl”,options) … GooglePlusAuthService […]

从Angular 2向Spring支持的Java应用程序发送POST请求时出现CSRF问题

我有使用Angular 2和基于Java的后端编写的UI,它在Spring Security之上使用OpenID Connect身份validation。 身份validation工作正常,但仅适用于GET请求。 每次在资源上执行POST,PUT或DELETE方法时,我都会收到HTTP 403: { “status”: 403, “message”: “Invalid CSRF Token ‘null’ was found on the request parameter ‘_csrf’ or header ‘X-CSRF-TOKEN’.”, } 我像这样使用HttpClient: http.post( ‘/api/my-resource’, JSON.stringify(myObject), new RequestOptions({ headers: new Headers({‘Content-Type’: ‘application/json’}) }) ) 当我添加withCredentials: true 这里提出的RequestOptions,我仍然得到HTTP 403但是有不同的消息: { “status”: 403, “message”: “Could not verify the provided CSRF token because your […]

使用Angular 2客户端的Spring启动Birt报告生成损坏的PDF文件

我试图在spring启动应用程序中配置birt报告,客户端是一个角度2应用程序,这是我运行报告的地方: @PostConstruct public void startUp() { if(inputDir == null) throw new RuntimeException(“Cannot start application since birt report input directory was not specified.”); try { EngineConfig engineConfig = new EngineConfig(); engineConfig.getAppContext().put(“spring”, this.context); RegistryProviderFactory.releaseDefault(); Platform.startup(engineConfig); IReportEngineFactory reportEngineFactory = (IReportEngineFactory) Platform.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY); birtReportEngine = reportEngineFactory.createReportEngine(engineConfig); } catch (BirtException e) { } reportOutputDirectory = env.getProperty(“birt_temp_file_output_dir”); } @Override public ByteArrayOutputStream runReport(Report […]

Angular 4 http CORS没有’Access-Control-Allow-Origin’和一个java servlet

我正在尝试做一个http.post,但chrome显示以下错误: No Access-Control-Allow-Origin。 我的Angularfunction是: onSubmit(event: Event) { event.preventDefault(); this.leerDatos() .subscribe(res => { //datos = res.json(); console.log(“Data send”); }, error => { console.log(error.json()); }); } leerDatos(): Observable { let headers = new Headers({ ‘Content-Type’: ‘application/json’ }); let options = new RequestOptions({ headers: headers }); return this.http.post(`http://localhost:8080/LegoRepositoryVincle/CoreServlet`, { name: “bob” }, options) //.map(this.extractData) //.catch(this.handleError); } 我的servlet doPost方法包括: […]

如何在任何在线服务器中部署Spring框架后端和Angular 2前端应用程序?

如果我的方式是错误的,请更正。 在我的Web应用程序中,我没有使用jsp页面来开发用户界面。 相反,我使用的是html,css和Angular 2,前端项目结构与后端分开。 虽然我能够使用由SpringMVC后端提供服务的Angular CLI开发一个简单的项目。 前端使用端口4200,后端在端口8080上运行。我已设法从Angular 2接收并提供请求到SpringMVC。 在本地模式下,这些工作正常,现在我想让它们在实时服务器上托管。 如何分别发布SpringMVC后端和Angular 2前端但在同一域上运行? 我没有使用SpringBoot,前端和后端都在单独的文件夹中。 我不想在相同的项目结构中组合两者并生成war文件并进行部署。 开发SpringMVC后端和Angular-2后端并在在线服务器中部署它们的最佳实践是什么?

打字稿枚举的构造函数?

我们的代码目前处于一种情况,我们在Java层中使用Enums,它使用如下构造函数存储id和’display value’: public enum Status implements EnumIdentity { Active(1, “Active”), AwaitingReview(2, “Awaiting Review”), Closed(3, “Closed”), Complete(4, “Complete”), Draft(5, “Draft”), InProcess(6, “In Process”), InReview(7, “In Review”), NotStarted(8, “Not Started”), PendingResolution(9, “Pending Resolution”), Rejected(10, “Rejected”); private int id; private String displayValue; PlanStatus(final int id, String displayValue) { this.id = id; this.displayValue = displayValue; } /** {@inheritDoc} */ […]

如何将JSON对象作为PathVariable传递给spring控制器

我正在使用angularjs进行spring应用程序。 我想将JSON对象作为@PathVariable传递给spring控制器,但是使用我的下面的代码,当将JSON对象作为PathVariable传递时,它没有击中弹簧控制器,也没有显示任何错误。任何输入? 示例代码:js: myApp.controller(‘passJSONTestController’, function ($rootScope, $scope, MyService) { $scope.submitdata=function(){ $scope.myJSONData = [ { ‘name’:$scope.name, ‘sinNumber’: $scope.sinNo, ‘status’: $scope.status, ‘message’:$scope.message, } ]; var fd=new FormData(); angular.forEach($scope.files,function(file){ console.log(“file ” + file); fd.append(‘file’,file); }); MyService.sendJSON($scope.myJSONData,fd).then( function (response) { // }, function (errResponse) { } ); } }); MyService.js myService.sendJSON = function (myJSONData,fd) { var deferred = $q.defer(); […]

包含名称为“com.google.android.gms.license”的多个库

我正在使用角4和离子3.现在当我运行“离子cordova运行android”它给我以下错误: “more than one library with package name ‘com.google.android.gms.license'” 我的project.property文件: target=android-26 android.library.reference.1=CordovaLib cordova.system.library.1=com.android.support:support-v4:27.1.0 cordova.system.library.2=com.android.support:support-v4:27.1.0 cordova.system.library.3=com.android.support:support-v4:27.1.0 cordova.system.library.4=com.android.support:appcompat-v7:25.+ cordova.gradle.include.1=cordova-plugin-firebase/starter-build.gradle cordova.system.library.5=com.google.gms:google-services:+ cordova.system.library.6=com.google.android.gms:play-services-tagmanager:+ cordova.system.library.7=com.google.firebase:firebase-core:+ cordova.system.library.8=com.google.firebase:firebase-messaging:+ cordova.system.library.9=com.google.firebase:firebase-crash:+ cordova.system.library.10=com.google.firebase:firebase-config:+ 我在build.gradle文件中的依赖项: dependencies { compile fileTree(dir: ‘libs’, include: ‘*.jar’) // SUB-PROJECT DEPENDENCIES START debugCompile(project(path: “CordovaLib”, configuration: “debug”)) releaseCompile(project(path: “CordovaLib”, configuration: “release”)) compile “com.android.support:support-v4:27.1.0” compile “com.android.support:appcompat-v7:25.+” compile “com.google.gms:google-services:+” compile “com.google.android.gms:play-services-tagmanager:+” compile “com.google.firebase:firebase-core:+” compile “com.google.firebase:firebase-messaging:+” […]

Angular 2 / Spring Security CSRF实施问题

我正在尝试在Spring Boot API之上构建一个Angular 2页面。 我已经配置了CORS(正确的我相信),但我被Spring Security的CSRF保护所阻止。 据我所知,Angular 2自RC2起自动处理CSRF,而我在RC4上。 服务器正在发送XSRF令牌以响应客户端的POST,如下所示: 我认为Angular 2没有把它拿起来? 我知道CORS正在工作,因为当我在.csrf()的末尾放置.ignoringAntMatchers(“/ urlhere /” )进行测试时,请求已经完成,因此CORS没有阻止它。 这是我的HttpSecurity配置方法: @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers(“/auth/**”, “/signup/**”).permitAll() .and() .headers() .and() .exceptionHandling() .and() .cors() .and() .csrf() .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()); } 我在客户端的登录过程包括一个首先发送凭据,然后使用JWT令牌检索凭据的方法。 这两种方法如下: sendCredentials(model) { let tokenUrl = ‘http://localhost:8080/user/login’; let headers1 = new Headers({‘Content-Type’: ‘application/json’}); return this.http.post(tokenUrl, JSON.stringify(model), […]

angular 4 httpclient xml响应

const headers = new HttpHeaders({ ‘Content-Type’: ‘text/xml’ }); headers.append(‘Accept’, ‘text/xml’); headers.append(‘Content-Type’, ‘text/xml’); this.http.get(‘getxmlurl’, {headers: headers}).subscribe(response => { return ‘1234’; }); 嗨我正在使用angular 4 httpclient从spring控制器发出一个http get请求,它返回一个XML响应。 我遇到的问题是响应总是为空,即使我可以从chrome开发人员网络选项卡中看到xml响应。 我认为它可能与请求标题有关,angular 4默认为json但是我无法使用上面的代码更改请求标头。 有人可以请教。 谢谢